我的代码如下:
#include <string.h>
int main()
{
int ii = 123;
char str[7] = "";
strcpy(str,"123456");
return 0;
}
我在VS2010中运行它,内存如下所示
我很好奇内存中的cc
是什么用的?以及如何计算cc
的数量?
答案 0 :(得分:7)
在Visual Studio中编译“Debug”时,cc
经常用于填充未初始化的内存。这样,当你访问未初始化的内存时,它会更加明显。
例如,如果您尝试取消引用未初始化的指针,您可能会得到类似的内容:
Access Violation accessing 0xcccccccc
或类似的东西。
答案 1 :(得分:1)
当您访问未初始化的内存空间时,VC2010将始终警告您已访问包含0xcccccccc
的某个地址,
0xcc
是编译器(在调试版本中)用来填充未初始化内存的值。