如何通过offsetof 动态的给结构体或者类成员变量赋值

结构体

typedef struct {

char a;
char b;
int  abc;

}stTest;

代码如下:

int m = offsetof(stTest, abc);
stTest test ;
*(int*)(((char*)(&test))+m) = 1231424;


刚开始我犯了一个错误,错误的写法如下:

*(int*)(((&test))+m) = 1231424;

必须要将(&test)转为char* 再加上成员变量偏移量,才能正确通过地址找到变量位置。

*(int*)(((char*)(&test))+m) = 1231424;

这样才对

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章