Ist es sicher, einen NULL-Zeiger zu löschen?
Und ist es ein guter Codierungsstil?
make_shared
(c ++ 11) und make_unique
(c ++ 14) sollte Ihr Programm null von new
unddelete
new
oder delete
. Klassen, die zum Verwalten von Ressourcen entwickelt wurden, in denen Standardkomponenten die Aufgabe nicht ausführen können, können natürlich das tun, was sie tun müssen, aber der Punkt ist, dass sie die hässlichen Dinge mit dem von ihnen verwalteten Speicher erledigen, nicht mit dem Endbenutzercode. Erstellen Sie also Ihre eigene Bibliothek / Hilfsklasse für new
/ delete
und verwenden Sie diese Klasse anstelle von ihnen.
delete
. Verwenden Sie stattdessen RAII . Das heißt, verwenden Siestd::vector<T> v(100);
stattT* p = new T[100];
, verwenden Sie intelligente Zeiger wieunique_ptr<T>
undshared_ptr<T>
sorgen Sie für das Löschen anstelle von rohen Zeigern usw.