-858993460
来源:互联网 发布:js快速入门 编辑:程序博客网 时间:2024/05/24 07:38
http://tieba.baidu.com/p/871822422
#include<stdio.h>
main()
{
int a;
printf("%d",a);
}
为什么输出-858993460呢?我知道当一个未初始化赋值的时候,他在内存就默认保存为-858993460;我只是想知道它的内部机制?为什么就是这个数?这个数在内存有什么特别的含义?
请各位大侠指点!谢谢
用VC DEBUG编译的就是这个数
-858993460对应HEX为0xCCCCCCCC
0xCC在X86指令集中为int 3
DEBUG这个机制是为了程序出现内存越界时调试器可以捕捉断点这个异常
而在RELEASE下默认直接是内存清零,也就是用VC RELEASE编译以后显示的结果为0
-858993460对应HEX为0xCCCCCCCC
0xCC在X86指令集中为int 3
DEBUG这个机制是为了程序出现内存越界时调试器可以捕捉断点这个异常
而在RELEASE下默认直接是内存清零,也就是用VC RELEASE编译以后显示的结果为0
设计成0xcccccccc是有特殊用意的……这个好像叫做Poison,未初始化的Pointer去取值的话会出错。肯定有人问为什么不弄成0x00000000,因为空指针是指针的有效状态,可能会误导人,而0xCCCCCCCC在Windows下永远不可能是一个指针的有效状态(不是NULL,不指向一个对象,不指向一堆对象紧接之后的区域),这就是在模拟野指针……
- -858993460
- -858993460
- 关于-858993460
- 为什么结果会是乱码?“-858993460”
- 未定义整型-858993460,未定义指针0xcccccccc的含义
- 未初始化的变量的值 0Xcccccccc -858993460 烫
- 未初始化的变量的值 0Xcccccccc -858993460 烫
- 关于vs2010调试时变量值为-858993460
- 求解 :在最后为什么输出的整形数字是-858993460,,应该不是溢出错误
- 8,6,5,4,1逆序排放,为什么会出现-858993460 ,4,5,6,8?
- Android学习笔记(二) —— 更改手机窗口画面底色—color定义颜色常数的方法
- Windows UI风格的设计(11)
- PE文件相关代码
- QPSK解调频率同步方法研究-1
- matlab快捷键
- -858993460
- 文艺程序员是怎么对爱表白的?
- [LeetCode]Construct Binary Tree from Inorder and Postorder Traversal
- Windows UI风格的设计(12)
- Windows UI风格的设计(13)
- 分享一个conky 网站
- 数据库
- struts2的上传例子
- mysql: 常用命令汇总