出现乱码时为什么经常是“烫”和“屯”

 

在 Debug 模式下,VC 、VS会默认把未初始化的栈内存按字节全部填成 0xcc,当一段初始化为0xcccc的内存被当做字符输出的时候,就会出现ansi码0xcccc对应的中文字“烫”;

把未初始化的堆内存全部填成 0xcd,当一段初始化为0xcdcd的内存被当做字符输出的时候,就会出现ansi码0xcdcd对应的中文字“屯”。

因此,如果内存没初始化或者字符数组溢出就可能出现这种情况。

但是在 Release 模式下不会出现这些汉字,原来那块内存里是什么就输出什么。

posted @ 2015-03-16 11:42  廖先生  阅读(374)  评论(0编辑  收藏  举报