简体   繁体   中英

Objective-c access struct variable from an array of structs

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.

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM