由于最近需要进行课程设计,我切换到了Visual Studio进行开发,很有幸的是我遇到了经典报错:

烫烫烫

原因如下:

  • VS在处理未初始化的栈内存时,会默认复制0xCC,0xCCCC对应MBCS字符集的”烫“,因此打印”烫烫烫烫“。至于为什么赋值为0xCC,则是因为0xCC对应INT3,当程序继续执行时将会触发异常中断。

  • 当处理未初始化的堆内存时,使用new命令,默认赋值0xCD,0xCDCD对应MBCS字符集的”屯“,因此打印”屯屯屯“。

有一说一啊,相比我之前用过的GCC与Clang,变量的默认赋值可以很大程度减少不确定情况的出现。