Я хочу написать функцию, которая выделяет динамический c массив значений с плавающей запятой, используя функцию из '' 'stdarg.h' ''. Проблема состоит в том, что входные данные функции содержат смешанные значения с плавающей точкой / int, и после использования '' 'va_arg (va, double)' '' значения int усекаются до 0. Как написать такую функцию, которая для разных типов ввода сохраняет их значения после приведения типа, без приведения каждого веселья вручную c. входной аргумент?
Какой-то код, который я написал:
float *allocVec(int n,...)
{
va_list va;
va_start(va, n);
printf("sizeof %ld\n",sizeof(va));
float *vector;
vector = (float*)malloc(n*sizeof(float));
//this function checks if memory were allocated succesfully
CheckAlloc(vector);
for(int i = 0 ;i < n ; i++)
{
vector[i] = (float) va_arg(va,double);
printf("%f \n",vector[i]);
}
va_end(va);
return vector;
}
int main()
{
allocVec(3,7.2,-1,0);
return 0;
}