您的位置:首页 > 大数据 > 人工智能

boost 指针容器ptr_container之内存泄漏

2011-06-23 14:27 537 查看
// shared_ptr.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <boost/ptr_container/ptr_container.hpp>
#define _crtdbg_map_alloc
#include "stdlib.h"
#include "crtdbg.h"

class CMan
{
public:
CMan()
{
printf("construct/n");
}
~CMan()
{
printf("deconstruct/n");
}
protected:
private:
};

int _tmain(int argc, _TCHAR* argv[])
{
{
boost::ptr_vector<CMan> listMan;

CMan *p1 = new CMan();
listMan.push_back(p1);

//char * sz = new char[32];
}

_CrtDumpMemoryLeaks();

//system("pause");

return 0;
}


很多野文都提到,放心使用boost的指针容器:容器在析构的时候,会自动清理指针。

那么有认真测试过内存泄漏的问题吗?自己动手来测试下吧。

我使用_CrtDumpMemoryLeaks简单的检测方法。

结果,对比代码中的new char,ptr_vector确实没有泄漏。

运行代码也会发现,容器析构的时候,其指针成员的析构也会执行。

这下我们可以方向使用boost指针容器了吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: