C ++内存分配问题

时间:2012-03-04 03:21:52

标签: c++ visual-studio-2010 memory

我的代码如下:

#include <string.h>
int main()
{
    int ii = 123;
    char str[7] = "";
    strcpy(str,"123456");
    return 0;
}

我在VS2010中运行它,内存如下所示

enter image description here

我很好奇内存中的cc是什么用的?以及如何计算cc的数量?

2 个答案:

答案 0 :(得分:7)

在Visual Studio中编译“Debug”时,cc经常用于填充未初始化的内存。这样,当你访问未初始化的内存时,它会更加明显。

例如,如果您尝试取消引用未初始化的指针,您可能会得到类似的内容:

Access Violation accessing 0xcccccccc

或类似的东西。

enter image description here

答案 1 :(得分:1)

当您访问未初始化的内存空间时,VC2010将始终警告您已访问包含0xcccccccc的某个地址,

0xcc是编译器(在调试版本中)用来填充未初始化内存的值。