Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

115
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!