2010-10-23 5 views
0

J'ai un struct appelé pointvariable struct d'accès Objective-c d'un tableau de struct

typedef struct { 
GLfloat x; 
GLfloat y; 
} Point; 

créer un tableau de points:

Point *sPoints; 
for(int i=0 ... // define sPoints 

ailleurs, je veux modifier les variables sur les points. Pourquoi ce travail:

sPoints[100].x+=10;  

mais cela ne fait pas:

Point pt = sPoints[100]; 
pt.x +=10; 

est-il possible de créer une variable temporaire qui fait référence à la structure de point et me permet de définir les propriétés de cette struct? La chose vraiment étrange est que dans mon code non fonctionnant (pt.x + = 10) je peux réellement lire pt.x bien, je ne peux juste pas l'assigner ... n'importe quelle aide appréciée.

Répondre

1

Il ne fonctionne pas parce que dans C, cette opération:

Point pt = sPoints[100]; 

crée une copie de l'élément sur le côté droit, alors que le premier ne copie pas.

+0

mais c'est l'opérateur ASSIGNMENT! Pouah. suppose que je devrais alors utiliser un pointeur dans cette situation ... – joshue