调试400/400 = -858993460

时间:2014-03-22 07:12:55

标签: c++ c debugging

enter image description here

困惑,为什么不是mL = 1?

1 个答案:

答案 0 :(得分:3)

Visual Studio将int mL = 400/400视为两个步骤。

第一步是在堆栈中分配内存。所以,你看到一个垃圾值。按F10 / F11(再次执行步骤),您应该看到1。

-858993460转换为0xCCCCCCCC,这是Microsoft编译器用于检测缓冲区溢出和初始化空堆栈的位模式。此处有更多详细信息 - softwareverify.com/memory-bit-patterns.php