在下一個例子中,我如何釋放內存。 vt.pop_back()刪除vt中的元素,但它不釋放內存。 刪除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;
}
爲什麼你甚至使用新的? – 2012-04-09 10:14:59
爲什麼'刪除v [i]'不起作用?這段代碼中沒有'delete v [i]'。 – 2012-04-09 10:16:28
,因爲構造函數可能包含參數 – 2012-04-09 10:16:42