结构体内存大小

来源:4-1 Linux C公用体

一叶知秋zxw

2015-08-10 11:43

55c81c270001aa1b04250094.jpg

55c81c2700017aae05000143.jpg

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

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

是这个样子吗?

写回答 关注

2回答

  • qq_羽_4
    2018-08-08 22:35:28

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

    偏移量=5

    最后一个成员的大小是8

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

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

  • AAnonymous
    2015-08-11 01:33:26

    4+4+8

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

    一叶知秋zx...

    字节对齐是对齐前面那个?

    2015-08-11 10:32:47

    共 1 条回复 >

Linux C语言结构体

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

118294 学习 · 162 问题

查看课程

相似问题