0

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 Answer 1

1

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.

Sign up to request clarification or add additional context in comments.

1 Comment

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.