利用stdarg.h库支持的宏函数来接收数据实现储存任意大小的数组
1 #include<stdio.h> 2 #include<stdlib.h>//malloc 3 #include<stdarg.h>//宏支持原型 4 #define SIZE 5 5 double * CreateArray(int p,...){ 6 va_list pt;//初始化参数列表 7 8 va_start(pt,p);//参数列表pt有p个参数 9 10 double *z=(double *)malloc(p*sizeof(double));//分配空间 11 for(int x=0;x<p;x++) 12 z[x] = va_arg(pt,double);//每次调用va_arg完都会指向下一个参数 13 va_end(pt);//清理参数列表 14 15 return z;//返回指针 16 } 17 void ShowArray(const double ar[],int size){ 18 for(int x=0;x<size;x++) 19 { 20 printf("%f ",ar[x]); 21 22 if((x+1)%8==0) 23 printf("\n"); 24 } 25 } 26 void main(void){ 27 ShowArray(CreateArray(SIZE,2.4,3.6,4.2,5.0,6.7),SIZE); 28 }
原文:https://www.cnblogs.com/Let-us-Coding/p/12830242.html