此代码:
int *pi = new int();
_CrtDumpMemoryLeaks();
给我一个4字节的泄漏。为什么呢?
我的指针pi指向已分配的内存。如果我写了pi = nullptr,我会理解泄漏,但我没有。有什么想法吗?
答案 0 :(得分:1)
指针的大小是四个字节,分配但不释放。
答案 1 :(得分:1)
根据文件http://msdn.microsoft.com/en-us/library/d41t22sb.aspx, _CrtDumpMemoryLeaks调用_CrtMemCheckpoint以获取堆的当前状态,然后扫描状态以查找尚未释放的块。
答案 2 :(得分:1)
_CrtDumpMemoryLeaks()
。它不会检查是否有指向内存块的指针。