野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 山外メ雲ジ

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

  [复制链接]
发表于 2020-3-24 20:54:36 | 显示全部楼层
8+4+8+4 么
回复

使用道具 举报

发表于 2020-4-2 09:52:57 | 显示全部楼层
应该是21。。。。
回复

使用道具 举报

发表于 2020-4-2 14:51:40 | 显示全部楼层
11,不知道联合体本身算不算字节  
回复 支持 反对

使用道具 举报

发表于 2020-4-3 00:07:43 | 显示全部楼层
来看结果
回复

使用道具 举报

发表于 2020-4-3 09:41:12 | 显示全部楼层
看看是不是24啊
回复 支持 反对

使用道具 举报

发表于 2020-4-4 18:02:58 | 显示全部楼层
来看看答案
回复 支持 反对

使用道具 举报

发表于 2020-4-4 21:05:28 | 显示全部楼层
果然还是答对了呀
回复 支持 反对

使用道具 举报

发表于 2020-4-4 22:20:26 | 显示全部楼层
这个应该不会错
回复 支持 反对

使用道具 举报

发表于 2020-4-7 20:05:25 | 显示全部楼层
学习                    
回复 支持 反对

使用道具 举报

发表于 2020-4-7 22:18:40 | 显示全部楼层
yinhao 发表于 2014-1-24 16:40
联合体大小到底怎么算的啊

其实union(共用体)的各个成员是以同一个地址开始存放的,每一个时刻只可以存储一个成员,这样就要求它在分配内存单元时候要满足两点:  
  1.一般而言,共用体类型实际占用存储空间为其最长的成员所占的存储空间;  
  2.若是该最长的存储空间对其他成员的元类型(如果是数组,取其类型的数据长度,例int   a[2]为4)不满足整除关系,该最大空间自动延伸;  
回复 支持 反对

使用道具 举报

发表于 2020-4-8 10:08:48 | 显示全部楼层
我来看看答案
回复 支持 反对

使用道具 举报

发表于 2020-4-8 16:47:07 | 显示全部楼层
学习,,,,,,,,,,,,,,,
回复

使用道具 举报

发表于 2020-4-29 09:25:09 | 显示全部楼层
来学习一下
回复 支持 反对

使用道具 举报

发表于 2020-4-30 08:49:29 | 显示全部楼层
本帖最后由 anglebhy 于 2020-4-30 08:56 编辑

5+8+4=17
联合体共用内存
然后就错了,嘤嘤嘤。
结构体内以他的成员最大类型对齐,对齐就是占用内存是类型对应字节的倍数,所以本题联合体class以int对齐,需要占用5字节,自动补齐1字节。整个结构体xc以float对齐,需要的内存是6+8+4=18,自动补齐2字节,最后结果是20,为4的倍数。


回复 支持 反对

使用道具 举报

发表于 2020-4-30 10:35:40 | 显示全部楼层
难道是14
回复

使用道具 举报

发表于 2020-4-30 11:32:13 | 显示全部楼层
不是太懂
回复

使用道具 举报

发表于 2020-5-3 17:54:28 来自手机 | 显示全部楼层
Union的部分不是很懂
回复 支持 反对

使用道具 举报

发表于 2020-5-6 14:58:25 | 显示全部楼层
进来看答案
回复 支持 反对

使用道具 举报

发表于 2020-5-13 16:03:16 | 显示全部楼层
应该是20
回复

使用道具 举报

发表于 2020-5-13 16:15:52 | 显示全部楼层
本帖最后由 DEQIN-VjEKkR 于 2020-5-13 16:18 编辑

    6+8+2+4 = 20
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 22:22 , Processed in 0.045107 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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