C++ - vector存储动态指针时正确释放内存

1 代码示例


#ifdef _DEBUG
#define DEBUG_CLIENTBLOCK   new( _CLIENT_BLOCK, __FILE__, __LINE__)
#else
#define DEBUG_CLIENTBLOCK
#endif
#define _CRTDBG_MAP_ALLOC
#include 
#ifdef _DEBUG
#define new DEBUG_CLIENTBLOCK
#endif

//#include "vld.h"   // visual leak detector 另一个内存泄漏检测工具
#include 
#include 
#include 

using namespace std;

class Example
{
public:
    Example();
    Example(int newIndex);
    virtual ~Example();
    int m_Index;
};

Example::Example()
{

}

Example::Example(int newIndex)
{
    m_Index = newIndex;
}

Example::~Example()
{
}



int main()
{
    std::vector<Example*> MyTestMap;

    for (unsigned int i = 0; i < 10; ++i)
    {
        std::string tempStr = std::to_string(i);
        Example* pExample = new Example(i);
        MyTestMap.push_back(pExample);
    }

    for (int i = 0; i < MyTestMap.size(); ++i)
    {
        delete MyTestMap[i];
        MyTestMap[i] = NULL;
    }

    MyTestMap.clear();
    MyTestMap.shrink_to_fit();

    getchar();
    _CrtDumpMemoryLeaks();

    return 0;
}

大家有兴趣可以访问我的个站:http://www.stubbornhuang.com

你可能感兴趣的:(C++,c++,vector,内存释放,动态指针)