如何从std::list
删除内存泄漏?
这只是示例代码:
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#include <iostream>
#include <list>
using namespace std;
void main()
{
list<int> a;
a.clear();
_CrtDumpMemoryLeaks();
}
当我尝试运行它时,它会显示一些内存泄漏。
那么,如何删除它?
答案 0 :(得分:7)
可能没有内存泄漏。报告告诉你的是,内存尚未被释放,这是事实。它将在当前范围的末尾解除分配 - 在_CrtDumpMemoryLeaks()
运行之后。
更改代码如下;它会为您提供更准确的答案:
void main()
{
{
list<int> a;
a.clear();
}
_CrtDumpMemoryLeaks();
}
请注意a
容器移动到自己的范围。