Todos nós percebemos que o ponteiro (e outros tipos de POD) deve ser inicializado.
A questão então se torna 'quem deve inicializá-los'.
Bem, existem basicamente dois métodos:
- O compilador os inicializa.
- O desenvolvedor os inicializa.
Vamos supor que o compilador inicializou qualquer variável não inicializada explicitamente pelo desenvolvedor. Em seguida, nos deparamos com situações em que a inicialização da variável não era trivial e o motivo pelo qual o desenvolvedor não o fez no ponto de declaração foi que ele precisava executar alguma operação e depois atribuir.
Portanto, agora temos a situação em que o compilador adicionou uma instrução extra ao código que inicializa a variável como NULL e, posteriormente, o código do desenvolvedor é adicionado para fazer a inicialização correta. Ou, em outras condições, a variável potencialmente nunca é usada. Muitos desenvolvedores de C ++ gritariam mal em ambas as condições ao custo dessa instrução extra.
Não é apenas uma questão de tempo. Mas também espaço. Existem muitos ambientes em que ambos os recursos são escassos e os desenvolvedores também não querem desistir.
MAS : Você pode simular o efeito de forçar a inicialização. A maioria dos compiladores avisa sobre variáveis não inicializadas. Portanto, sempre coloco meu nível de alerta no nível mais alto possível. Em seguida, diga ao compilador para tratar todos os avisos como erros. Sob essas condições, a maioria dos compiladores irá gerar um erro para variáveis que não foram inicializadas, mas são usadas e, assim, evitarão que o código seja gerado.