野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 山外メ雲ジ

【每日一题讲解】结构体的内存大小问题

  [复制链接]
发表于 2015-8-13 22:23:45 | 显示全部楼层
//若 int 占 2 个字节,char 占 1 个字节,float 占 4 个字节,则定义如下:
struct stu
{
  union{
    char bj[5];
    int bh[2];
  }class;
  char xm[8];
  float cj;
}xc;
//则 sizeof(xc)的值为?

8
回复 支持 反对

使用道具 举报

发表于 2015-8-18 10:03:57 | 显示全部楼层
看看                                                      
回复 支持 反对

使用道具 举报

发表于 2015-8-18 20:30:12 | 显示全部楼层
5   感觉怪怪的
回复 支持 反对

使用道具 举报

发表于 2015-8-19 22:31:49 | 显示全部楼层
两个知识点
回复 支持 反对

使用道具 举报

发表于 2015-8-21 17:24:23 | 显示全部楼层
对齐问题 学习           
回复 支持 反对

使用道具 举报

发表于 2015-8-22 11:25:31 | 显示全部楼层
答案应该为17
回复 支持 反对

使用道具 举报

发表于 2015-8-22 14:36:16 | 显示全部楼层
联合体取最大的,结构体取内存之和。 5+8+4 = 17
回复 支持 反对

使用道具 举报

发表于 2015-8-22 14:36:40 | 显示全部楼层
认真学习真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2015-8-22 14:46:20 | 显示全部楼层
认真学习真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2015-8-22 14:46:50 | 显示全部楼层
认真学习真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2015-8-22 15:09:11 | 显示全部楼层
好吧,内存对齐。学习了。
将char xm[8]; 改成char xm[2]; 最后结果应该是12

回复 支持 反对

使用道具 举报

发表于 2015-8-23 04:04:29 | 显示全部楼层
18个字节,查看下答案
回复 支持 反对

使用道具 举报

发表于 2015-8-23 16:07:24 | 显示全部楼层
27                              
回复 支持 反对

使用道具 举报

发表于 2015-8-24 00:33:35 | 显示全部楼层
联合体大小不会算         
回复 支持 反对

使用道具 举报

发表于 2015-8-24 21:37:02 | 显示全部楼层
联合体     应该是10吧
回复 支持 反对

使用道具 举报

发表于 2015-8-25 18:24:15 | 显示全部楼层
                         这个题我不会啊
回复 支持 反对

使用道具 举报

发表于 2015-8-26 10:04:59 | 显示全部楼层
看看答案啊,学习学习
回复 支持 反对

使用道具 举报

发表于 2015-8-28 16:11:03 | 显示全部楼层
不会是21吧
回复 支持 反对

使用道具 举报

发表于 2015-8-29 16:26:42 | 显示全部楼层
回复

使用道具 举报

发表于 2015-8-30 14:34:57 | 显示全部楼层
20                    ,
回复 支持 反对

使用道具 举报

发表于 2015-9-1 09:34:23 | 显示全部楼层
答案是12,不太确定
回复 支持 反对

使用道具 举报

发表于 2015-9-2 21:29:27 | 显示全部楼层
20吧????
回复

使用道具 举报

发表于 2015-9-3 12:52:11 | 显示全部楼层
.....答案:10
回复

使用道具 举报

发表于 2015-9-4 08:50:58 | 显示全部楼层
21         21                          21
回复 支持 反对

使用道具 举报

发表于 2015-9-4 16:10:19 | 显示全部楼层
额,来学习一下
回复 支持 反对

使用道具 举报

发表于 2015-9-4 17:00:41 | 显示全部楼层
5+8+4=17是么?
回复 支持 反对

使用道具 举报

发表于 2015-9-4 22:12:16 | 显示全部楼层
我觉得因该是12吧
回复 支持 反对

使用道具 举报

发表于 2015-9-5 16:30:35 | 显示全部楼层
5+8+4=17 应该是的吧
回复 支持 反对

使用道具 举报

发表于 2015-9-5 16:31:18 | 显示全部楼层
5+8+4=17 应该是的吧
回复 支持 反对

使用道具 举报

发表于 2015-9-5 22:15:30 来自手机 | 显示全部楼层
看不懂,不开心……
回复 支持 反对

使用道具 举报

发表于 2015-9-6 11:36:35 | 显示全部楼层
一:16   二:10
回复 支持 反对

使用道具 举报

发表于 2015-9-6 12:17:51 | 显示全部楼层

16 我也不太确定 看看答案
回复 支持 反对

使用道具 举报

发表于 2015-9-23 21:30:18 | 显示全部楼层
上一个题答错了,看下正确答案
回复 支持 反对

使用道具 举报

发表于 2015-9-24 10:21:25 | 显示全部楼层

联合体大小到底怎么算的啊
回复 支持 反对

使用道具 举报

发表于 2015-9-24 10:43:48 | 显示全部楼层
20.。。。。。。。。。。。
回复

使用道具 举报

发表于 2015-9-24 12:11:45 | 显示全部楼层
这个最终应该是20,来看下分析
回复 支持 反对

使用道具 举报

发表于 2015-9-24 19:39:54 | 显示全部楼层
真棒!!非常感谢
回复 支持 反对

使用道具 举报

发表于 2015-9-25 08:49:54 | 显示全部楼层
啊恩呢男男女女男男女女男男女女男男女女男男女女
回复 支持 反对

使用道具 举报

发表于 2015-9-26 23:38:24 来自手机 | 显示全部楼层
是不是21,哈哈
回复 支持 反对

使用道具 举报

发表于 2015-9-29 10:38:14 来自手机 | 显示全部楼层
5jia8jia3jia4=20
回复 支持 反对

使用道具 举报

发表于 2015-9-29 19:25:51 | 显示全部楼层
我是来看答案的
回复 支持 反对

使用道具 举报

发表于 2015-10-1 22:25:34 | 显示全部楼层
不知道作对了没有,是不是24?
回复 支持 反对

使用道具 举报

发表于 2015-10-2 13:56:07 | 显示全部楼层
联合体算5个字节,在加8个字节和一个浮点4个字节,总共17个
回复 支持 反对

使用道具 举报

发表于 2015-10-6 23:02:19 | 显示全部楼层
不知道啊           。
回复 支持 反对

使用道具 举报

发表于 2015-10-7 10:02:53 | 显示全部楼层
17                                          
回复 支持 反对

使用道具 举报

发表于 2015-10-7 10:16:10 | 显示全部楼层
明白了,受益匪浅啊         
回复 支持 反对

使用道具 举报

发表于 2015-10-8 02:14:05 | 显示全部楼层
还是参考一下答案吧
回复 支持 反对

使用道具 举报

发表于 2015-10-8 08:14:19 | 显示全部楼层
sizeof(xc) = 24
结构体的大小等于最后一个成员的偏移量加上其大小且结构体储存变量时有地址对齐要求。
回复 支持 反对

使用道具 举报

发表于 2015-10-8 08:32:12 | 显示全部楼层
站太阳上看地球 发表于 2015-10-8 08:14
sizeof(xc) = 24
结构体的大小等于最后一个成员的偏移量加上其大小且结构体储存变量时有地址对齐要求。

错在联合体上了,其大小应该为最大成员所占字节数大小,同样也要注意地址对其。
回复 支持 反对

使用道具 举报

发表于 2015-10-8 11:07:10 | 显示全部楼层
感觉都没有答案啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-22 17:21 , Processed in 0.043576 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表