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 50 / 68

Agrupar la limpieza con goto

En esta lección usarás goto para liberar recursos en un solo sitio cuando algo falla.

Se etiqueta un punto al final de la función y se salta allí con goto desde cualquier punto de fallo. En esa etiqueta se cierran archivos y se libera memoria.

El código de ejemplo salta a la limpieza cuando una comprobación no se cumple.

goto tiene mala fama merecida —el salto arbitrario hace el código imposible de seguir—, pero este uso concreto es la excepción reconocida. Sin él, una función que reserva tres recursos necesita repetir la liberación en cada punto de salida, y basta olvidar una para tener una fuga.

No es una opinión minoritaria: el núcleo de Linux usa este patrón sistemáticamente. La regla que lo hace aceptable es saltar siempre hacia adelante y solo a la limpieza; saltar hacia atrás o entre bloques es lo que produce el código imposible de mantener.

📖 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)