具有删除智能指针的内存重分配不起作用[重复]

问题描述 投票:1回答:1

此问题已经在这里有了答案:

我声明并分配矢量指针和具有大数组指针的类的共享指针。通过删除矢量指针,我希望从大数组中释放内存。我的问题是,为什么在“ return 0”之前的“ delete vec”之后的正确时刻没有释放内存。在调试模式下,您可以在窗口任务管理器中看到它。请让我知道为什么。

class test
{
public:
    test() { A = new double[500000000]; }
    ~test() { delete[] A; }
    double *A;
};

int main()
{
    vector<shared_ptr<test>> *vec =new vector<shared_ptr<test>>();
    vec->push_back(shared_ptr<test>(new test()));
    vec->push_back(shared_ptr<test>(new test()));
    vec->push_back(shared_ptr<test>(new test()));

    delete vec;

    return 0;
}
c++ shared-ptr
1个回答
0
投票

我测试了您的代码,删除ptr没问题。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.