0
元のポインタを削除するのと同じ方法でコピーしたポインタを削除していますか?上記のコードでコピーしたポインタを削除する
int * a = new int;
*a = 8;
int *b = a;
delete b;
、b
を削除した後、私はまだa
を削除する必要がありますか?私はとの問題を抱えている実際のコードで
、私は私のコードが間違っているものを、
std::vector<ifstream * >Infiles(5);
for (int i = 0; i < 5; ++i){
ifstream * ptr = new ifstream;
(*ptr).open(file_names[i].c_str());
Infiles[i] = ptr;
}
/* doing a bunch of reading with Infiles */
for (int i = 0; i < Infiles.size(); ++i){
delete Infiles[i]; // this part crashes
Infiles[i] = NULL;
}
しかし、クラッシュの原因となるdelete Infiles[i];
行をしましたか?
「/ * Infiles */'コードで読書をしていることをコメントアウトしてください。コードはまだクラッシュしますか? – PaulMcKenzie