问答详情
源自:4-1 Linux C公用体

结构体内存大小

55c81c270001aa1b04250094.jpg

55c81c2700017aae05000143.jpg

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

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

是这个样子吗?

提问者:一叶知秋zxw 2015-08-10 11:43

个回答

  • 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开始