在我的代码中,我有一个包含整数的向量。使用第一个循环,我创建了 100 个新整数并将它们推送到向量上。然后下一个循环删除除最后一个之外的所有动态分配的整数,因为删除最后一个整数会导致错误并返回 0xc0000005。为什么我的程序会因删除最后一个整数而崩溃?
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> list;
cout << list.size() << endl;
int i = 0;
while(i!=100)
{
list.push_back(*(new int(12)));
i++;
}
cout << list.size() << endl;
i=0;
while(i!=99)
{
delete &list.back();
list.pop_back();
i++;
}
/*
delete &list.back();
list.pop_back();
*/
cout << list.size() << endl;
return 0;
}