为了账号安全,请及时绑定邮箱和手机立即绑定

结构体内存大小

55c81c270001aa1b04250094.jpg

55c81c2700017aae05000143.jpg

每个成员相对于结构体首地址的偏移是当前成员所占内存大小的整数倍,那么c的偏移量就是8;

内存大小=最后一个成员的偏移量(也就是8)+最后一个成员的大小(8)+末尾填充字节数(0)=16;

是这个样子吗?

正在回答

2 回答

int的字节数为4,char的字节数为 1,double的字节数为 8;

偏移量=5

最后一个成员的大小是8

填充字节数 =3(填充字节数=最后一个成员的最小整数倍数-偏移量;偏移量必须是最后一个成员的整数倍,不然就得填充字节,比如这里最后一个成员的大小是8,那么8的最小整数倍是8,所以8-3=5)

 内存大小=5+8+3=16

0 回复 有任何疑惑可以回复我~

4+4+8

char后面要做字节对齐,空三个字节double开始

0 回复 有任何疑惑可以回复我~
#1

一叶知秋zxw 提问者

字节对齐是对齐前面那个?
2015-08-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Linux C语言结构体
  • 参与学习       118263    人
  • 解答问题       162    个

C语言的深入,帮助小伙伴们进一步的理解C语言,赶紧看过来

进入课程

结构体内存大小

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信