_CrtDumpMemoryLeaks()给出了一个简单的新int()的泄漏

时间:2014-06-25 13:24:01

标签: c++ debugging visual-studio-2012 new-operator crt

此代码:

int *pi = new int();

_CrtDumpMemoryLeaks();

给我一​​个4字节的泄漏。为什么呢?

我的指针pi指向已分配的内存。如果我写了pi = nullptr,我会理解泄漏,但我没有。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

指针的大小是四个字节,分配但不释放。

答案 1 :(得分:1)

根据文件http://msdn.microsoft.com/en-us/library/d41t22sb.aspx, _CrtDumpMemoryLeaks调用_CrtMemCheckpoint以获取堆的当前状态,然后扫描状态以查找尚未释放的块。

答案 2 :(得分:1)

在释放所有内存后,应在程序结束时调用

_CrtDumpMemoryLeaks()。它不会检查是否有指向内存块的指针。