我在我的程序中出现了一些内存泄漏,这是我认为唯一可能的事情。指针向量中的内存泄漏,如何防止?
if (inputType == 'S')
{
SavingAccount* savingAccount = new SavingAccount();
inFile >> *savingAccount;
accounts.push_back(savingAccount);
}
虽然指针的矢量在程序结束时被删除,我有3个错误泄漏,这似乎与3种类型的帐户余有对应。也就是说,如果我把它放入向量后删除指针,它也会删除向量中的条目(我期望的)
有没有人知道如何解决这个问题?
编辑:添加
void Transaction::cleanUp()
{
for (int i = 0; i < accounts.size(); i++)
{
delete accounts[i];
}
accounts.clear();
}
清理代码。
编辑:议决
我的问题并没有太多做的载体,因为它没有类的析构函数。由于我没有定义虚拟析构函数,只有基类正在被擦除,留下了派生类的片段。添加后没有内存泄漏。
你可以发布你的清理代码? –
问题不清楚。 – Abhineet
你写了'这是关于我认为可能的唯一事情' - 你为什么认为这可能是唯一的原因?在更仔细地查看矢量之前,请考虑使用'new'和'malloc'的其他地方。 –