如何从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();
}当我尝试运行它时,它显示了一些内存泄漏。
那么,如何去除它呢?
发布于 2016-01-27 09:02:18
很可能没有内存泄漏。报告告诉你的是内存还没有被释放,这是真的。在运行_CrtDumpMemoryLeaks()之后,它将在当前作用域的末尾被解除分配。
按以下方式修改代码;它将为您提供更准确的答案:
void main()
{
{
list<int> a;
a.clear();
}
_CrtDumpMemoryLeaks();
}注意a容器的移动到它自己的范围。
https://stackoverflow.com/questions/35032794
复制相似问题