|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 结构体所占字节的问题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
840
人关注过本帖
标题:
结构体所占字节的问题
只看楼主
加入收藏
编程小猪
等 级:
新手上路
帖 子:33
专家分:4
注 册:2022-10-17
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:20 回复次数:6
结构体所占字节的问题
#include <stdio.h>
int main()
{
struct cat
{
int a[10];
char ch;
float f;
double *p;
} cat1;
printf("%d",sizeof(cat1));
return 0;
}
为什么我算出来是33,编译器是56,答案确是27?为什么double *p会是占2个字节?请各位大佬不吝赐教!!
搜索更多相关主题的帖子:
字节
结构体
int
double
不吝
2023-02-24 16:26
举报帖子
使用道具
赠送鲜花
rjsp
等 级:
版主
威 望:
528
帖 子:9031
专家分:54061
注 册:2011-1-18
第
2
楼
收藏
得分:20
int的长度是
实现定义
的,结构体的对齐排布也是
实现定义
的,所以
不可能有什么标准答案
假如是 LLP64 数据模型(VC x64),那 10*4 + 4 + 4 + 8 = 56
假如是 ILP32 数据模型(VC x86),那 10*4 + 4 + 4 + 4 = 52
假如用的是古老16位计算机,且未作变量对齐,那有可能真的是 10*2 + 1 + 4 + 2 = 27
2023-02-24 16:54
举报帖子
使用道具
赠送鲜花
renkejun1942
来 自:不是这样
等 级:
贵宾
威 望:
33
帖 子:1645
专家分:5297
注 册:2016-12-1
第
3
楼
收藏
得分:0
结构的内存占用根据编译器不同而有所不同,这是没有标准答案的。
当然如果你的目的是考试的话,那就死记硬背答案吧。
09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2023-02-24 18:39
举报帖子
使用道具
赠送鲜花
pvm2000
等 级:
贵宾
威 望:
24
帖 子:180
专家分:312
注 册:2022-12-22
第
4
楼
收藏
得分:0
sizeof最准确
2023-02-25 00:25
举报帖子
使用道具
赠送鲜花
编程小猪
等 级:
新手上路
帖 子:33
专家分:4
注 册:2022-10-17
第
5
楼
收藏
得分:0
回复 2楼 rjsp
懂了,不纠结这个题目了,谢谢大佬
专升本备考中!!!
2023-02-25 14:23
举报帖子
使用道具
赠送鲜花
编程小猪
等 级:
新手上路
帖 子:33
专家分:4
注 册:2022-10-17
第
6
楼
收藏
得分:0
回复 4楼 pvm2000
用了sizeof()的,int类型是4个字节
专升本备考中!!!
2023-02-25 14:24
举报帖子
使用道具
赠送鲜花
编程小猪
等 级:
新手上路
帖 子:33
专家分:4
注 册:2022-10-17
第
7
楼
收藏
得分:0
回复 3楼 renkejun1942
哈哈哈,但愿4月份专升本不要出这种题目
专升本备考中!!!
2023-02-25 14:24
举报帖子
使用道具
赠送鲜花
7
1/1页
1
快速回复:
结构体所占字节的问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.016768 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved