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

Funciones que devuelven varios valores (estructuras)

En esta lección harás que una función devuelva más de un resultado.

C solo permite devolver un valor, así que se agrupan los resultados en una struct y se devuelve esa. La alternativa clásica es recibir punteros y escribir a través de ellos.

El código de ejemplo calcula a la vez el mínimo y el máximo de una lista y devuelve ambos.

Entre las dos formas, devolver una estructura se lee bastante mejor: la firma dice qué sale de la función, mientras que con punteros de salida hay que leer el cuerpo para saber cuáles se rellenan. El coste de copiar una estructura pequeña es despreciable.

Eso sí, hay una regla que no se puede romper: nunca devuelvas un puntero a una variable local. Esa memoria deja de ser válida al terminar la función, y el resultado es un puntero colgante que a veces «parece» funcionar. Devolver la estructura por valor no tiene ese problema.

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