原文来自:
http://chenlq.net/dev/cpp-why/60-tun-tun-tun-garbled-program-output-is-how-is-it.html
Q:
请问执行程序时,为什么会有像图片那种乱码”屯屯屯”出现? 用的visual stdio2008
A:
这是初学者很常见的一个问题
在Debug模式下,VC会把未初始化的堆内存全部填成 0xcd,当我们将其当作字符串输出,即0xcdcd,而这恰好是屯这个汉字的GBK编码,显示出来也就成了 屯屯屯屯……;
类似的还有“烫烫烫…”
那是因为未正确初始化的栈内存引起的
总之,遇到乱码,说明我们的程序将没有正确初始化的内容输出了,需要检查程序对变量,内存空间的初始化,并正确进行初始化
以下代码展示了这两种典型情况,你可以对比查找一下
// HelloWorld.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace[......]
继续阅读