免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: flying2008_cu
打印 上一主题 下一主题

关于未初始化的int类型的默认值 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-01-19 12:26 |只看该作者
如果在静态区,取决于编译器,如果在堆栈取决于运行时的环境

论坛徽章:
0
12 [报告]
发表于 2009-01-19 17:10 |只看该作者
应该是程序问题吧,每次都是同一值
原帖由 flying2008 于 2008-11-5 09:59 发表
多谢各位,因为我们的软件出现了一个bug,不知道是我们的函数给它分配了一个坏的buffer,还是根本就没赋值最后就利用的随机值。这个值总是0x20202020,所以我怀疑是随机值...

论坛徽章:
0
13 [报告]
发表于 2009-01-19 22:07 |只看该作者
用vc调试就知道了,未初始化的区域是"烫烫烫烫烫烫烫......"

论坛徽章:
0
14 [报告]
发表于 2009-01-20 10:33 |只看该作者
原帖由 flying2008 于 2008-11-4 13:59 发表
Hi All,
未初始化的int类型的默认值是决定于操作系统平台还是编译器?
在windows server 2003平台下的未初始化的int类型的默认值是多少?是0x20202020吗?
期待解惑...



编译器。
因此,第二句不对。得看编译器。VC的CL是0xcccccccc.

PS:
"Hi All,"? 这里应该没有,或者很少有老外吧?

论坛徽章:
0
15 [报告]
发表于 2009-01-20 10:52 |只看该作者
原帖由 gz80 于 2009-1-19 22:07 发表
用vc调试就知道了,未初始化的区域是"烫烫烫烫烫烫烫......"

为什么会是这样呢?
vc编译器对没有初始化的int变量空间做了什么呢

论坛徽章:
0
16 [报告]
发表于 2009-01-20 11:57 |只看该作者

回复 #15 zhuhefang2006 的帖子

debug模式下0xcccccccc是VC编译器的中断号3的中断地址
单步中断,利于调试。
所以编译器不同,可能对其未初始化的处理也不同

论坛徽章:
0
17 [报告]
发表于 2009-01-20 12:02 |只看该作者
没劲,又是 undefined。
全局对象倒是默认置零的。

论坛徽章:
0
18 [报告]
发表于 2009-01-20 13:54 |只看该作者
原帖由 gz80 于 2009-1-19 22:07 发表
用vc调试就知道了,未初始化的区域是"烫烫烫烫烫烫烫......"



You can debug it under English Environment without Asia character set supporting. What you can see? "烫烫烫烫烫烫烫"?? :wink: :wink: :wink:

论坛徽章:
0
19 [报告]
发表于 2009-01-21 18:11 |只看该作者
C标准从没定义“未初始化的int类型的默认值”。因此,如果你的代码未赋值就直接引用,就是病态代码。
如果你认同这句话,你还会去研究X平台Y编译器里它们是什么值吗?

论坛徽章:
1
双子座
日期:2015-01-04 14:25:06
20 [报告]
发表于 2009-01-21 22:40 |只看该作者
自己初始化不久OK了?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP