当前位置:首页 > 内存 > 正文

结构类型变量所占内存长度

  • 内存
  • 2024-06-01 00:36:03
  • 8357

一、structstud{inta[3];charch;doublef;}stud1;则结构体变量stud1占用内存的字节数是多少?如果一个int占用2个字节并且是对齐的,那么:
3x2+2+8=16
如果一个int占用4个字节并且是对齐的,那么:
3x4+4+8=24
结果因系统而异。
二、结构体变量的数据长度占多少个字节?结构体的字节长度是结构体最长变量长度的整数倍。上面的例子中,每个内部变量的实际长度是4+1+4+4=13个字节,但是sizeof(student.)=16,16对于INT类型的最长内部变量来说是4个字节的整数倍。如果结构体中score变量为DOUBLE,则每个变量类型的实际长度为4+1+4+8=17。为了将整个结构体的大小加倍,编译器(8字节)是整数倍,sizeof(student)=24,