次の例でマモリーを解放するにはどうすればよいですか。vt.pop_back()はvtの要素を削除しますが、メモリを解放しません。delete vt [i]が機能せず、セグメンテーション違反が発生します。
#include <vector>
#include <unistd.h>
using namespace std;
const int SIZE = 1000000;
class Test
{
public:
Test();
~Test();
private:
int *arr;
};
int main()
{
vector<Test *> vt;
for(int i = 0; i < 100; i++)
vt.push_back(new Test());
sleep(10);
return 0;
}
Test::Test()
{
arr = new int[SIZE];
}
Test::~Test()
{
delete[] arr;
}