牛客880887010号 level
获赞
0
粉丝
0
关注
0
看过 TA
0
郑州航空工业管理学院
2029
C++
IP属地:河南
暂未填写个人简介
私信
关注
链接:https://www.nowcoder.com/questionTerminal/29193a1acc4e4fd4b349a26e4ad78291?来源:牛客网1、结构体所占的内存大小:a.整体所占的内存大小应该是结构中成员类型最大的整数倍,此处最大的类型是int_64t,占8个字节。。即最后所占字节的总数应该是8的倍数,不足的补足;b.数据对齐原则-内存按结构体成员的先后顺序排列,当排到该成员变量时,其前面所有成员已经占用的空间大小必须是该成员类型大小的整数倍,如果不够,则前面的成员占用的空间要补齐,使之成为当前成员类型的整数倍。假设是地址是从0开始,结构体中第一个成员类型char型占一个字节,则内存地址0-1,第二个成员从2开始,int型所占内存4个字节,根据原则b,第一个成员所占内存补齐4的倍数,故第一个成员所占内存:1 + 3 = 4; 第二个成员占5-8. 第三个成员占8个字节,满足原则b,不需要补齐,占9-16.  第四个成员占一个字节,占17. 故总内存为1 + 3 + 4 + 8 + 1 = 17个字节,但根据原则a,总字节数需是8的倍数,需将17补齐到24.  故此结构体总字节数为:24字节2、计算data[1][5],意思是前面有15个元素。则第15个元素的起始地址为: 24 * 15 = 360, 即 X + 360则data[1][5].c的地址为: 360 + 1 + 3 + 4 = 368,即 X + 368
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务