如何解决为什么要为结构分配更多内存?
考虑下面的代码
#include <stdio.h>
typedef struct aStruct {
int numA;
int numB;
int numC;
int numD;
int numE;
}A;
typedef struct bStruct {
int numF;
int numG;
int numH;
A* a;
}B;
int main(void) {
printf("Size of struct A: %lu\n",sizeof (A));
printf("Size of struct B: %lu\n",sizeof (B));
return 0;
}
当我在 64 位机器上编译并运行上面的代码时
Size of struct A: 20
Size of struct B: 24
我不明白为什么结构 B 包含 24B。我希望它是 20B,三个整数成员为 12B,指针为 8B。一开始考虑内存对齐的原因,但是根据struct A的大小,系统可以分配20B。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。