¿Qué significa NULL en lenguaje C?
#define NULL (void *)0
El valor 0 se convierte en un puntero.
Se utiliza para indicar que el puntero es ilegal. Por lo tanto, NULL se utiliza a menudo para la inicialización.
Debido a que es un puntero ilegal, tomar el valor de este puntero (operación *) provocará que el programa se bloquee. Primero debes señalar un espacio válido.