【发布时间】:2012-07-01 03:40:36
【问题描述】:
我正在使用 Visual Studio 2008 进行调试。我使用
分配了一个大缓冲区(大约 12MB)buf = new unsigned char[bigValue];
稍后当我使用 delete[] buf; 释放缓冲区时,我看到“?? ?? ?? ??”调试内存窗口中的值。通常我会看到“fe ee fe ee”。我的内存管理是否出现了我没有看到的问题?
我发现了几个相关的问题:
Why I can only see “??” at any address before 0x70000
In Visual Studio C++, what are the memory allocation representations?
但他们没有回答这个问题。
【问题讨论】:
-
可能与被解释为
chars(又名字符串)数组的内存有关。因此,调试器可能会尝试清楚地打印非 ascii 值。 -
@jpm 谢谢,但我不这么认为。其他(较小的)缓冲区显示“fe ee fe ee”值,指示已释放的堆分配。
标签: visual-studio debugging visual-studio-2008 visual-c++