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

结构体变量占用的内存大小

  • 内存
  • 2024-06-08 19:19:35
  • 7198

一、C语言,结构体问题?所占内在字节数,怎么算的???C语言中如何计算结构体长度和联合体长度?
结构体的长度等于体中每个成员变量的长度。这题的长度是字符串数组的长度加上两个int变量的长度,再加上double的长度,最后的结果是10+2+2+8=22。分析:char的每个字符占用一个字节(因为是十长度的字符数组),所以是10个字节,int占用两个字节,double占用8个字节。所以最后就是10+2*2+8=22。
联合的长度是身体四肢之间的最长长度。如果联合的最大长度为12个字节,则联合的长度将为12。
希望这对您有所帮助。如有任何问题?


二、请问这个结构体占的内存为什么是25?如果按照int占2个字节来进行这样的计算,那么问题就很容易解决了。
intno占2个字节,charname[20]占20个字节,
sex占1个字节,
union根据占用空间最大的变量进行分割,因此union占用2个字节。,
当然,你可以尝试将union中的int替换为占用内存较多的longlong、float、double,也会找到规律的。
总结一下,存储空间为25字节。。
但是现在的机器基本上占用了4个字节的int,所以如果是这样的话
你应该
选择29个字节。。。所以你的问题肯定是很久之前
保存合并链接:在线链接


三、C语言中,在说明一个结构体变量时系统分配给它的存储空间怎么计算?structdog
{
charch[10];
core;
int*p;
doublek;
}dog1;
C语言中如何计算结构体长度和联合体长度?
结构体的长度等于体中每个成员变量的长度。这题的长度是字符串数组的长度加上两个int变量的长度,再加上double的长度,最后的结果是10+2+2+8=22。分析:每个char字符占用一个字节(因为是十个字符的数组长),所以是10个字节,int占用两个字节,double占用8个字节。所以最后就是10+2*2+8=22。
联合长度是主体中成员之间的最长长度。如果联合的最大长度为12字节,则联合的长度为12。
希望有帮助。如有任何问题?