为了账号安全,请及时绑定邮箱和手机立即绑定

若有以下说明和定义语句,则变量aa所占内存的字节数是什么?

若有以下说明和定义语句,则变量aa所占内存的字节数是什么?

海绵宝宝撒 2022-05-12 15:15:04
18.若有以下说明和定义语句:union uti {int n;double g;char ch[9];}struct srt{float xy;union uti uv;}aa;则变量aa所占内存的字节数是( )A) 9B) 8C) 13D) 17为什么?
查看完整描述

3 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

经过VC6.0和VS2010实测,答案是24 。
联合中有一个double类型,所以应该是8字节对齐。float占4字节,联合中最长是ch占9字节,会跳过float后的4字节,从第8字节开始,到下一个8字节的头一字节为止。而后的7字节也要被对齐占掉。共3*8 = 24.
若不考虑内存对齐,答案如上。

查看完整回答
反对 回复 2022-05-16
?
当年话下

TA贡献1890条经验 获得超9个赞

应该是十三个字节, 联合体的话 定义的时候系统分给它的内存是占联合体各变量中最大的一个 而结构体定义的时候系统分给它的内存是全部的变量 所以答案应该是9+4=13个。

查看完整回答
反对 回复 2022-05-16
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

C
union util中char ch[9];最大,占用9个字节
srt是float和union util的结构,占用4+9=13个字节

查看完整回答
反对 回复 2022-05-16
  • 3 回答
  • 0 关注
  • 615 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号