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

Listas de argumentos variables (stdarg.h)

En esta lección escribirás una función que acepta un número variable de argumentos, como hace printf.

stdarg.h aporta va_list, va_start, va_arg y va_end. La función declara al menos un parámetro fijo y luego ... para el resto.

El código de ejemplo suma una cantidad variable de números indicando primero cuántos son.

El punto delicado es que C no sabe cuántos argumentos le pasaste ni de qué tipo son. Hay que decírselo de alguna forma: con un contador, como aquí, o con un marcador final. Si te equivocas, va_arg lee memoria arbitraria; no hay ninguna comprobación.

Eso explica por qué un printf("%d", "texto") falla de forma tan fea: la propia printf confía en que los especificadores describen bien lo que le diste. Es un mecanismo potente y sin red, y por eso en código moderno se usa con moderación.

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