下面是使用了可变函数的程序片断:
#include <stdio.h> #include <stdlib.h> #include <stdarg.h> void show_array(const double ar[], int n); double * new_d_array(int n, ...); int main() { double * p1; double * p2; p1 = new_d_array(5, 1.2, 2.3, 3.4, 4.5, 5.6); p2 = new_d_array(4, 100.0, 20.00, 8.08, -1890.0); show_array(p1, 5); show_array(p2, 4); free(p1); free(p2); return 0; }
new_d_array()函数接受一个iit参数和数量可变的double参数。该函数返回一个指向malfoc()分配的内存块的指针。int参数指定动态数组中的元素个数:double值用于初始化元素(第个值赋予第一个元素,依此类推)。提供show_array()和new_d_array()的代码,使程序完整。