views:

20

answers:

1

I have a struct called Point

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

create an array of Points:

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

somewhere else, I want to alter variables on those points. Why does this work:

sPoints[100].x+=10;    

but this doesn't:

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

is there any way to create a temporary variable that refers to the Point structure and allows me to set properties of that struct? The really strange thing is that in my non working code (pt.x +=10) I can actually read pt.x fine, I just can't seem to assign it... any help appreciated.

+1  A: 

It doesn't work because in C, that operation:

Point pt = sPoints[100];

creates a copy of the item on the right hand side, whereas the former does not copy.

jer
but it's the ASSIGNMENT operator! ugh. suppose I should then be using a pointer in this situation...
joshue