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

结构体的变量所占的内存字节

  • 内存
  • 2024-05-20 17:10:10
  • 8056

一、结构体struct{intnum;intage;charsex;}占多少个字节?说到结构体的内存使用,就必须要提到内存对齐的概念。
在32位系统中,我们常用的gcc编译器和vc编译器默认都是按照4字节的大小进行内存对齐的,也就是说该结构体的内存分配默认是按照4字节来分配的。的倍数。
对于结构体struct{intnum;intage;charsex;}来说,intnum占用4个字节,intage占用4个字节,charsex是字节长度但是需要遵守内存对齐原则所以在内存分配时,它也占用长度为4字节,所以整个结构体占用的内存大小为12字节。
二、结构体变量的数据长度占多少个字节?结构体的长度(以字节为单位)是结构体中最长变量长度的整数倍。上面的例子中,每个内部变量的实际长度为:4+1+4+4=13字节,但是sizeof(student.)=16.16是最长的INT类型内部变量4字节的整数倍。若结构内的score变量为DOUBLE,则各类变量的有效长度为:4+1+4+8=17。为了让整个结构体的大小等于double的大小,编译器(8字节)为整数倍,所以sizeof(student)=24,