我运行以下代码,我得到了
0x106879018
0x106879030
我真的不明白我们是如何得到这个地址的。如果我们有6个整数..这是24个字节.. 但我不知道该去哪里。
我真的很感谢你的帮助!
struct one{
int x[6];
short y[12];
}a;
int main(){
printf("%p \n", &a);
printf("%p \n", &a.y);
}
答案 0 :(得分:4)
1)这是算术:
0x10687903016 - 0x10687901816 = 0x1816 == 2410
2)这是布局:
struct one{
int x[6]; // bytes 0..23 (24 bytes)
short y[12]; // bytes 24 .. 47 (next 24 bytes)
}a;