AD

¿Ya dominas lo básico? Un curso estructurado de C es la vía rápida para dar el salto.

Ver cursos de C en Udemy

Enlace de afiliado. No te cuesta nada extra.

🔧Lecciones de C
Lección 21 / 68

Tratar los punteros nulos con seguridad

En esta lección aprenderás a no fallar cuando un puntero no apunta a nada.

NULL representa «ninguna dirección». Antes de usar un puntero hay que comprobar que no lo sea: if (p != NULL), o su forma corta if (p).

El código de ejemplo comprueba el puntero antes de leerlo y avisa cuando está vacío.

Desreferenciar un puntero nulo (*p cuando p es NULL) provoca el fallo de segmentación, el error más conocido de C. Y es de los mejores errores que te pueden pasar, porque al menos el programa se detiene ahí. Los realmente peligrosos son los punteros que apuntan a memoria liberada o a una dirección basura: esos siguen adelante y corrompen datos en silencio.

La costumbre en código serio es comprobar en la frontera —al recibir un puntero en una función pública, al recoger lo que devuelve malloc o fopen— y poner el puntero a NULL justo después de un free, para que un uso posterior falle de forma visible en lugar de silenciosa.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar C directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)