É seguro excluir um ponteiro NULL?
E é um bom estilo de codificação?
make_shared
(c ++ 11) e make_unique
(c ++ 14) o programa deve conter de zero de new
edelete
new
ou delete
. As classes projetadas para gerenciar recursos, onde os componentes Standard não podem fazer o trabalho, podem, é claro, fazer o que precisam, mas o ponto é que eles fazem coisas feias com a memória que gerenciam, não com o código do usuário final. Portanto, crie sua própria classe library / helper para fazer new
/ delete
e use essa classe em vez delas.
delete
. Use RAII em vez disso. Ou seja, use emstd::vector<T> v(100);
vez deT* p = new T[100];
usar ponteiros inteligentes comounique_ptr<T>
eshared_ptr<T>
que cuidam da exclusão em vez de ponteiros brutos etc.