c语言中,定义一个函数,函数输出结果是一个数组,整个的形式是怎么样的?

如题所述

提供两个办法:
1.在主调函数中建立数组,将数组指针传给自定义的函数,处理后主调函数中的数组值也就变化了。
void fun(int a[],int n){
........

}//其中a[]就是要输入的数组,n是这个数组的长度。
void main(void){
int arry[10]={1,2,3,4,5,6,7,8,9,0};
fun(arry,10);
......
}
2.可以在主调函数中建立数组并把首地址和长度传给函数,在函数中创建一个动态数组,处理完后把动态数组的首地址返回主调函数,最后在主调函数中释放动态申请的内存。
int *fun(int a[],int n){
int *p=(int *)malloc(n*sizeof(int));//申请内存.
if(!p){//判断是否申请成功.
printf("failure...");
exit(0);
}
memcpy(p,a,n*sizeof(int));//把主调函数的数组拷贝过来.
......
return p;
}
void main(void){
int arry[10]={1,2,3,4,5,6,7,8,9,0},*ptmp;
ptmp=fun(arry,10);
......
free(ptmp);//释放申请的空间.
}
数组的内容是不能一一传给函数的……
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-19
可以吧函数的输入部分加上这个数组,在函数体内改变数组的元素值,在主函数调用时就等于给主函数输出了一个数组。
例如
void main()
{
int i,num[5];
void ddt(int []);

ddt(num);
for(i=0;i<5;i++)
{
printf("%d ",num[i]);
}
}
void ddt(int num[5])
{
for(int i=0;i<5;i++)
num[i]=i+1;
}
在主函数中将输出1 2 3 4 5
相似回答