• Advertisement
Sign in to follow this  

Struct member offsets

This topic is 2213 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi

Say you have a char pointer "p" to an array of characters. Now p+1 would give you the second character and so on.

The same applies for structs. If a struct is 40 Bytes long, then structobject+1 increments by 40 bytes.

How does this applies to members of a struct?


struct MyStruct
{
int no;
int idx_x,idx_y,idx_z;
float tx,ty,tz,tw;
};


MyStruct &pData = ArrayOfMyStructs[47];
int offset = 3;
pData.no+offset; //Where is this address?


Does pData.no+offset; refer to ArrayOfMyStructs[50].no, or does it refer to ArrayOfMyStructs[47].idx_z?

Share this post


Link to post
Share on other sites
Advertisement
When pData is a pointer, then pData.no is not valid syntax to begin with. But even if you meant pData->no, then pData->no+3 simply means the value of the no-member plus three.

If, on the other hand, you meant (&pData->no)+3, then that is equivalent to int *pNo=(&pData->no); pNo+3 which moves an int-pointer three steps forwards. In practice, that would mean it likely points to ArrayOfMyStructs[47].idx_z.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement