烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫好烫啊我叉
在Debug 模式下,
VC 会把未初始化的栈内存全部填成0xcc,当字符串看就是 烫烫烫烫……
会把未初始化的堆内存全部填成0xcd,当字符串看就是 屯屯屯屯……
可以让我们方便地看出那些内存没初始化
未初始化的变量会被系统赋初值为0xCC,超过了ASCII码0-127这个范围,因此这个“字符串”被系统当成了宽字符组成的字符串,即两个字节数据组成一个字符,而0xCCCC表示的宽字符正好是乱码中的那个“烫”字。
烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫是debug中未初始化的栈变量
屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯是debug中未初始化的堆变量
出现 这个的原因 是你的字符串后面少了字符串的结束标记 '\0'
本文介绍了Visual C++在Debug模式下如何对未初始化的栈内存和堆内存进行填充,用以帮助开发者快速定位未初始化的变量。对于栈内存,使用0xcc填充,显示为“烫烫烫烫...”;对于堆内存,使用0xcd填充,显示为“屯屯屯屯...”。这些特殊的填充方式有助于开发者识别哪些内存区域未经过初始化。

4120

被折叠的 条评论
为什么被折叠?



