鱼C论坛

 找回密码
 立即注册
查看: 7949|回复: 14

[已解决]结构体问题

[复制链接]
发表于 2022-12-5 19:04:32 | 显示全部楼层 |阅读模式
本帖为密码帖 ,请输入密码 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-5 19:42:14 | 显示全部楼层    本楼为最佳答案   
这种不符合规范的写法,什么情况都有可能,没有参考意义,每个编译器的处理方式都不同,有的编译器可能直接报错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-5 20:10:37 | 显示全部楼层
这个是不合法的 , 不同机器结果不一样
这种东西是没有意义的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-5 20:48:45 | 显示全部楼层
先说一下为什么大小是1: 因为你定义了一个变量,这个变量没有成员,但是编译器要给它分配一个地址,那就给它一个占位符大小吧,方便别人找到它(不能比1再小了吧)
再说它的值是什么,这段代码msvc编译不通过(我是windows),哈哈[你可以反编译一下,取一下变量的地址,查看一下里面存放的什么]
还有吧,win32api定义了类似下面的结构体
struct Info {
    int x;
    char y[0];
} a;(具体是哪个忘了!!!)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-5 20:52:02 | 显示全部楼层
你问的这个问题,可能这本书 C++反汇编与逆向分析技术揭秘 有更具体的说明(如果没记错的话)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-12-5 20:55:02 | 显示全部楼层
Hello110 发表于 2022-12-5 20:52
你问的这个问题,可能这本书 C++反汇编与逆向分析技术揭秘 有更具体的说明(如果没记错的话)

有知道为什么我不能提问吗,刚注册的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-5 20:56:29 | 显示全部楼层
萌豆 发表于 2022-12-5 20:55
有知道为什么我不能提问吗,刚注册的

这个我也不清楚啊,你有什么问题就问吧,大家一起帮忙解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-5 21:04:59 | 显示全部楼层

c语言问题

Hello110 发表于 2022-12-5 20:56
这个我也不清楚啊,你有什么问题就问吧,大家一起帮忙解决

显示
抱歉,您没有权限发表 URL 连接
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-5 21:07:29 | 显示全部楼层
萌豆 发表于 2022-12-5 21:04
显示
抱歉,您没有权限发表 URL 连接

在这回复里提问,我发了图片链接,出现这个提示
抱歉,您没有权限发表 URL 连接
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-5 21:08:19 | 显示全部楼层
萌豆 发表于 2022-12-5 21:04
显示
抱歉,您没有权限发表 URL 连接

这个不清楚
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-6 08:04:52 | 显示全部楼层
Hello110 发表于 2022-12-5 20:48
先说一下为什么大小是1: 因为你定义了一个变量,这个变量没有成员,但是编译器要给它分配一个地址,那就给它一 ...

就是说这个是占位符?是有空间的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-6 08:05:33 | 显示全部楼层
xiaotubie 发表于 2022-12-5 19:42
这种不符合规范的写法,什么情况都有可能,没有参考意义,每个编译器的处理方式都不同,有的编译器可能直接 ...

好的,感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-6 08:09:09 | 显示全部楼层

不清楚?算了,我试了试数组,Info 数组开了 2000000000 都没有爆空间,那么这个应该是没有空间的,但是系统还是sizeof给出了一个非零值,所以我觉得 Info 实际上就是 0 字节,编译器还是给出来了 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-6 19:39:57 | 显示全部楼层
zhangjinxuan 发表于 2022-12-6 08:09
不清楚?算了,我试了试数组,Info 数组开了 2000000000 都没有爆空间,那么这个应该是没有空间的,但是 ...

取一下第一个元素的地址和最后元素的地址不就知道答案了么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-6 20:17:30 | 显示全部楼层
Hello110 发表于 2022-12-6 19:39
取一下第一个元素的地址和最后元素的地址不就知道答案了么

有道理
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 09:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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