#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
main()
{
int a;
printf("%d",a);
}
为什么输出-858993460呢?我知道当一个未初始化赋值的时候,他在内存就默认保存为-858993460;我只是想知道它的内部机制?为什么就是这个数?这个数在内存有什么特别的含义?
用VC DEBUG编译的就是这个数
-858993460对应HEX为0xCCCCCCCC
0xCC在X86指令集中为int 3
DEBUG这个机制是为了程序出现内存越界时调试器可以捕捉断点这个异常
而在RELEASE下默认直接是内存清零,也就是用VC RELEASE编译以后显示的结果为0