小编use*_*990的帖子

指针向量内存泄漏,如何预防?

我的程序中出现了一些内存泄漏问题,这是我认为唯一的问题.

if (inputType == 'S')
{
    SavingAccount* savingAccount = new SavingAccount();
    inFile >> *savingAccount;

    accounts.push_back(savingAccount);
}
Run Code Online (Sandbox Code Playgroud)

虽然在程序结束时删除了指针向量,但我有3个错误泄漏,这似乎与我拥有的3种类型的帐户相对应.话虽这么说,如果我把它放入向量后删除指针,它也会删除向量中的条目(我预期)

有谁知道如何解决这个问题?

编辑:

void Transaction::cleanUp()
{
    for (int i = 0; i < accounts.size(); i++)
    {
        delete accounts[i];
    }

    accounts.clear();
}
Run Code Online (Sandbox Code Playgroud)

清理代码添加.

编辑:已解决

我的问题与向量没有那么多,因为它做了类的析构函数.因为我没有定义虚拟析构函数,所以只删除了基类,留下派生类的片段.添加此内容后没有内存泄漏.

c++ memory pointers memory-leaks vector

1
推荐指数
1
解决办法
3358
查看次数

标签 统计

c++ ×1

memory ×1

memory-leaks ×1

pointers ×1

vector ×1