-858993460正在输出未经初始化的变量

时间:2015-09-09 16:42:41

标签: c++ variables initialization

cout正在为未初始化的变量显示值-858993460(可能是因为内存中有垃圾),但无论我有多少或者多少,它都会为程序中的每个未初始化变量输出-858993460或者他们在计划中相对于彼此的地方。

当我在一台完全不同的计算机上运行一个完全不同的程序时,它也会输出相同的值-858993460,从Windows 7到运行在Mac上的VM上的Windows 10。它为什么这样做? -858993460随机出现在不同计算机上每个未初始化的内存位置的可能性在天文数据上是不可能的。

2 个答案:

答案 0 :(得分:8)

读取未初始化的变量并不能保证返回一个随机值,甚至是该位置以前存在的值。

-858993460是0xcccccccc。它是MSVC用于填充调试版本中未初始化值的位模式。这有助于您识别未初始化变量的情况。

答案 1 :(得分:7)

-858993460 == 0xcccccccc(十六进制)。 微软编译器经常使用这种位模式来检测缓冲区溢出等。