Ich suchte diese Frage, aber ich konnte es nicht finden, wenn es eine wiederholte Frage ohne negativen Punkt ist, sagen Sie mir den Link der Antwort.Löschen Sie ein Mitglied einer Klasse in Destruktor, die durch neue in einer Methode in C++ gemacht wird
Im Studenten Klasse habe ich viele Mitglieder, aber vier von ihnen wird vom Bediener neue in einem Verfahren Öffentlichkeit geschaffen, die gesetzt genannt
Ich schreibe nur einer von ihnen hier:
class Student{
private:
float *tp;
....
}
Dies ist die Methode gesetzt, die öffentlichen ist:
void Student::set(int field, int valeur){
...
tp = new float[valeur];
...
}
Hier ist destructor die öffentlichen ist:
~Student(){
...
delete tp;
...
}
Die Haupt:
...
Student *students=new Student[n];
...
delete students;
Es gibt keine Fehler beim Kompilieren, aber wenn ich laufe stand ich vor der Fehler:
ich ändern, um den Haupt Code auch nur für die Überprüfung wie:
Student s;
Der Fehler existiert noch.
ein Fehler im Code gibt es, dass Sie nicht –
haben Post Bitte geben Sie ein minimales, aber vollständige Codebeispiel, das dieses Problem – vu1p3n0x
in zeigt, was Sie enthielten, Sie rufen Sie nicht 'Set' und daher kann "tp" einen unbestimmten Wert haben, der bewirkt, dass "delete tp" undefiniertes Verhalten hat – vu1p3n0x