Löscht ein kopierter Zeiger genauso wie der ursprüngliche Zeiger?einen kopierten Zeiger löschen
int * a = new int;
*a = 8;
int *b = a;
delete b;
In dem obigen Code, nach b
löschen, sollte ich a
löschen noch?
In dem realen Code, den ich habe ein Problem mit, ich
tatstd::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;
}
Aber die Linie delete Infiles[i];
Abstürze verursacht, was mit meinem Code falsch?
Kommentieren Sie das '/ *, indem Sie mit dem Infiles * /' Code eine Menge lesen. Stürzt der Code noch ab? – PaulMcKenzie