Hola , veras te explico , como han dicho arriba , es una buena costumbre inicializar los punteros , y en general cualquier variable. Aun asi , es algo que tu no puedes saber , ya que si tu compilas este programa
#include <stdio.h>
int main(int argc , char *argv[])
{
int numero; // Lo dejo sin inicializar
printf("La variable numero es %d\n" , numero
); return 0;
}
Cada vez que lo ejecutes obtendras un valor distinto para numero , ya que
al no estar inicializado , cuando el programa pide al sistema que le de un chachito
de memoria , esa memoria contiene datos 'basura' que se llaman , de otras ejecuciones que usaron esa memoria antes ... etc , etc , etc
Puede que en windows obtengas varias veces el mismo numero , no pasa nada
, pero por lo general obtendras numeros distintos en cada ejecucion.
Y ahora vamos con los punteros. Si un puntero no esta inicializado , apuntara
a una direccion de memoria (pseudo)aleatoria. Si por accidente modificas la zona de memoria apuntada , pueden ocurrir 2 cosas
1. Te salgas de tu zona de memoria y haya violacion del segmento
2. Sobreescribas instrucciones de tu programa y empieze a hacer cosas raras
Espero que te haya servido mi respuesta