c - 如何将可变参数传递给接受可变参数的函数?

标签 c variadic-functions

有一个函数avg(int, ...),它计算输入整数的平均数量,

avg(1,2,3) = 2, avg(2,3,4,5,6) = 4  

现在我有一个整数数组,需要使用 avg() 来获取它们的平均值,
但数组的大小是动态的,可以从 stdin 或文件中读取。

代码示例:

int i, num;  
scanf("%d", &num);  
int *p = malloc(num * sizeof(int));  
for(i = 0; i < num; ++i)  
    scanf("%d", &p[i]);  
// what should I do now?  
// avg(p[0], p[1],....)  

请注意,avg() 函数只能调用一次。

--已编辑--
avg() 函数只是一个示例,实际函数比这更复杂。

最佳答案

没有可移植的方法来做到这一点。大多数情况下,当存在可变参数函数时,还有一个直接接受数组参数的变体。

关于c - 如何将可变参数传递给接受可变参数的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5986485/

相关文章:

c - Matlab 最终因 mex 回调而崩溃

c - 用 C 对字母表进行编码打印

c - 无重复创建二维数组的最佳方法

go - golang中的可变参数函数

c++ - 递增参数包中的每个值

c - GDB 在进入断点时抛出错误

c++ - 为什么函数序言中没有 "mov rsp, rbp"?

java - Java 中具有继承性的 Varargs

php - 函数中的可变长度引用参数列表

objective-c - #define 在 Swift 中是如何工作的?