Как я могу освободить mamory в следующем примере. vt.pop_back() удаляет элемент в vt, но он не освобождает память. delete vt [i] не работает, и это дает мне ошибку сегментации.C++ vector new delete
#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;
}
Почему вы даже используете новые? –
Почему 'delete v [i]' не работает? В этом коде нет 'delete v [i]'. –
потому что конструктор может содержать аргументы –