Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

117
Vistas
Modificación de matriz a través de argumentos variables

Estoy tratando de modificar una matriz a través de argumentos variables pasando valores de va_arg a la matriz, pero por alguna razón da resultados extraños. Aquí está el código:

 #include <stdio.h> #include <stdarg.h> void get_args(double* args, int argc, ...); void get_args(double* args, int argc, ...) { va_list argv; va_start(argv, argc); if (argc == 1) { args[0] = va_arg(argv, double); } else if (argc == 4) { for (int i = 0; i < argc; i++) { args[i] = va_arg(argv, double); } } va_end(argv); } int main(void) { double args[4] = { 0, 0, 0, 0 }; get_args(args, 4, 0, 1, 2, 3); for (int i = 0; i < 4; i++) { printf("args[%d] = %f\n", i, args[i]); } return 0; }

En Visual Studio (MSVC) da lo siguiente:

 args[0] = 0.000000 args[1] = 0.000000 args[2] = 0.000000 args[3] = -92559592143668871097826611732759620974286504571030640424648704.000000

En GCC da lo siguiente:

 args[0] = 0.000000 args[1] = 0.000000 args[2] = 0.000000 args[3] = 0.000000

¿Alguien sabe cuál es el error que cometí?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Los tipos de argumentos variados no coinciden con el tipo dado a va_arg .

Los argumentos que está pasando a get_args , es decir 0, 1, 2, 3 son todos de tipo int , pero está usando el tipo double cuando intenta recuperarlos con va_arg . Esta es una discrepancia de tipos que desencadena un comportamiento indefinido .

Pase argumentos que tengan tipo double :

 get_args(args, 4, 0.0, 1.0, 2.0, 3.0);

O use int para extraer los argumentos:

 args[i] = va_arg(argv, int);
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda