io tendo a scrivere "if (p) free(p)
" molto, anche se so che non è necessario.
In parte mi sono incolpato perché ho imparato C ai vecchi tempi quando free(NULL)
sarebbe segfault e mi sento ancora a disagio nel non farlo.
Ma anche la colpa dello standard C per non essere coerente. Sarebbe, per esempio, fclose (NULL) essere ben definito, non avrei problemi nella scrittura:
free(p);
fclose(f);
che è qualcosa che accade molto spesso quando ripulire le cose. Purtroppo, sembra strano per me di scrivere
free(p);
if (f) fclose(f);
e io alla fine con
if (p) free(p);
if (f) fclose(f);
Lo so, non è un motivo razionale, ma questo è il mio caso :)
fonte
2009-12-16 11:41:24
Perché le persone non conoscono lo standard C? –
Duplicato, ish of http://stackoverflow.com/questions/615355/is-there-any-reason-to-check-for-a-null-pointer-before-deleting – McPherrinM
WaffleMatt: si tratta di C++ (e non Tag C++ :-() - my is C, quindi è un po 'diverso. C++ è più recente quindi forse' vecchie abitudini 'hanno meno trazione lì – zaharpopov