我试图通过将值传递va_arg给数组来通过变量参数修改数组,但由于某种原因它给出了奇怪的结果,这是代码:
#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 = …Run Code Online (Sandbox Code Playgroud)