È sicuro eliminare un puntatore NULL?
Ed è un buon stile di codifica?
make_shared
(c ++ 11) e make_unique
(c ++ 14) il tuo programma dovrebbe contenere zero di new
edelete
new
o delete
. Le classi progettati per gestire le risorse, in cui i componenti standard non possono fare il lavoro, possono naturalmente fare quello che devono fare, ma il punto è che essi fanno la roba brutta con la memoria riescono, non il codice utente finale. Quindi, crea la tua libreria / classe helper per fare new
/ delete
e usa quella classe invece di loro.
delete
. Usa invece RAII . Cioè, usastd::vector<T> v(100);
invece diT* p = new T[100];
, usa puntatori intelligenti comeunique_ptr<T>
eshared_ptr<T>
che si occupano dell'eliminazione invece di puntatori grezzi ecc.