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指针容器了吧。
相关文章推荐
- 指针容器的应用 --- boost::ptr_container介绍
- 多索引容器boost::multi_index_container储存共享智能指针boost::shared_ptr
- 指针容器: boost::ptr_vector ptr_container
- Boost.Interprocess使用手册翻译之八:分配器,容器和内存分配算法(Allocators, containers and memory allocation algorithms)
- Boost学习之指针容器--pointer_container
- Boost.Interprocess使用手册翻译之八:分配器,容器和内存分配算法(Allocators, containers and memory allocation algorithms)
- 智能指针tr1::shared_ptr、boost::shared_ptr使用
- Boost智能指针——shared_ptr
- C++ 0x 使用 shared_ptr 自动释放, 防止内存泄漏
- 【Boost】boost库中智能指针——weak_ptr
- Boost智能指针之scoped_ptr
- Boost智能指针——shared_ptr
- Boost.Interprocess使用手册翻译之五:独立于映射地址的指针:offset_pt (Mapping Address Independent Pointer: offset_ptr)
- boost::smart_ptr之智能指针
- 【Boost】boost库中智能指针——scoped_ptr
- 如何把this指针转换成boost的shared_ptr
- Boost智能指针——weak_ptr vs shared_ptr
- boost.Smart_ptr中智能指针
- 为什么auto_ptr智能指针不能作为STL标准容器的元素
- 智能指针boost::scoped_ptr