VC中的0XCCCCCCCC
来源:百度文库 编辑:神马文学网 时间:2024/05/03 11:20:54
http://csw8923.vipkj.com/Html/?556.html 在VC Debug版本里,栈中分配的值都会先用0xCCCCCCCC来处理一下,所以大家在Debug模式下调试程序发现在引用0xCCCCCCCC这样的值,就说明在试图使用一个没有初始化的值。这就是在Debug模式下调试的好处之一,如果在Release模式下,系统就不会用0xCCCCCCCC来处理一下了。至于为什么选择0xCCCCCCCC大概是因为 端点中断int 3 对应的机器码就是0xCC吧,我也不是很有把握。
用固定的地址是可以访问指针所指向的数据的。但是在一般情况下,Windows可能会报非法操作。
VC的DEBUG版会把未初始化的指针自动初始化为0xCCCCCCCC,而不是就让它随机去,那是因为DEBUG版的目的是为了方便我们调试程序的,如果野指针的初值不确定,那么每次调试同一个程序就可能出现不一样的结果,比如这次程序崩掉,下次正常运行,再一次虽然没崩掉,但结果不对……那显然对我们解bug是非常不利的。
DEBUG版本为了能让程序员更早的发现错误,把堆栈上的数据对初始化成了0xcc,也就是说局部变量如果不初始化,那么DEBUG版本中就会是0xCC。
Debug为了调试方便,也就是其Edit And Continue特性,为每个函数都多分配了64个字节。当用户在调试时在代码里增加少量变量的时候,编译器就可以分配那64个字节的空间过去,这样就不用重新编译程序来重新调试。 另一种说法:如果变量的数据类型由于你的运算的溢出了,在内存中系统就自动改为-858993460 或者说:
为了帮你debug人家会把内存事先都填0xcc, 如果你看到类似的指针,那就是程序已经出错了。 本文出自
映轩晓屋 - 资料库 - http://csw8923.vipkj.com/Html/?556.html (#)
用固定的地址是可以访问指针所指向的数据的。但是在一般情况下,Windows可能会报非法操作。
VC的DEBUG版会把未初始化的指针自动初始化为0xCCCCCCCC,而不是就让它随机去,那是因为DEBUG版的目的是为了方便我们调试程序的,如果野指针的初值不确定,那么每次调试同一个程序就可能出现不一样的结果,比如这次程序崩掉,下次正常运行,再一次虽然没崩掉,但结果不对……那显然对我们解bug是非常不利的。
DEBUG版本为了能让程序员更早的发现错误,把堆栈上的数据对初始化成了0xcc,也就是说局部变量如果不初始化,那么DEBUG版本中就会是0xCC。
Debug为了调试方便,也就是其Edit And Continue特性,为每个函数都多分配了64个字节。当用户在调试时在代码里增加少量变量的时候,编译器就可以分配那64个字节的空间过去,这样就不用重新编译程序来重新调试。 另一种说法:如果变量的数据类型由于你的运算的溢出了,在内存中系统就自动改为-858993460 或者说:
为了帮你debug人家会把内存事先都填0xcc, 如果你看到类似的指针,那就是程序已经出错了。 本文出自
映轩晓屋 - 资料库 - http://csw8923.vipkj.com/Html/?556.html (#)
VC中的0XCCCCCCCC
Web2.0泡沫中的VC盛宴
Web2.0泡沫中的VC盛宴55
VC++中的CDC类(VC++学习笔记)
生活中的经典感人语句vc
深度解析VC中的消息传递机制
利用VC调用动态链接库中的函数1-开发频道-VC-天极网
VC中的一些常用方法(20条)
VC中的一些常用方法(20条)
利用VC调用动态链接库中的函数
VC知识库文章 - 如何获取网页密码框中的密码
VC++中的char,wchar_t,TCHAR - joe的日志 - 网易博客
VC中的坐标转换 - 笑看风云淡 - C++博客
利用VC中的通讯控件开发串行通信程序
Web2.0和风险投资VC
VC追逐创新Web2.0
[原创]vc 6中的结构化异常处理try-except-finally语句 - VC 论坛 - C 论坛 - 编程论坛
感触c语言中的面向对象思想 - vc - 技术天地 - 赛迪网
在c#中使用vc++编写的封装在Dll中的类
【转载】水晶报表10.5在VC++.net2008中的使用与部署
浅谈HOOK技术在VC编程中的应用—编程爱好者网站 programfan.com
VC也博客-WEB2.0(残缺版)
中国创业投资论坛:VC投资WEB2.0过热
违规VC参与流量作弊 Web2.0投资凸现泡沫