私のコードには、整数を保持するベクトルがあります。最初のループを使用して、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;
}