数组返回主函数c语言 如何返回数组c语言

c语言中调用函数的返回值,如果是数组,主函数要输出这个数组怎么实现啊

用指针,另外保存数据的变量退出函数时不得消失。

在斗门等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、做网站 网站设计制作按需求定制开发,公司网站建设,企业网站建设,高端网站设计,成都全网营销推广,外贸网站制作,斗门网站建设费用合理。

例如:

#includestdio.h

int * fun(int n)

{

int i;

static int a[100]; // 这里用static

for (i=0;in;i++) a[i]=i;

return a[0];

}

void main()

{

int i,n=5;

int *p; // 声明指针

p = fun(n); // 返回指针

for (i=0;in;i++) printf("%d\n",p[i]); // 把 p 看成数组来输出

}

得 0 1 2 3 4

扩展资料:

注意事项

1、数组的维度必须是一个常量表达式

int main(void)

{

constexpr int i = 20;

int j = 5;//不是常量表达式

int arr1[i];//正确

int arr2[j];//错误

system("pause");

return 0;

}

2、默认情况下,数组的元素被默认初始化。

而且需要注意的是,和内置类型的变量一样,如果在函数内部定义了某种内置类型的数组,那么默认初始化会令数组有未定义的值。

C语言里1维数组作为返回值怎么传给主函数??

4L217很强大。局部变量返回后已经销毁了,你这个返回的指针是在野的。

3Lflying说的没错,一般不能返回数组,但你可以把一个数组当参数传进去,然后修改它。或者,用我们强大的malloc();在函数内部分配一块空间,然后返回给调用者,但用这种方法就要写另一个对应的销毁函数,不然就有内存泄漏了。

int *get_memory(int len)

{

int *p = (int*)malloc(len*sizeof(int));

//清0,或者你用其它方法初始化

memset(p, 0, len*sizeof(int));

return p;

}

void free_memory(int *p)

{

free(p);

}

int main()

{

int *a;

a = get_memory(10);//返回一个10个元素的数组

//编写使用a的代码

free_memory(a);

return 0;

}

C语言子函数如何返回一个数组,主函数如何接收?

一般是需要主函数提供保存数据的数组,在参数中给出数组起始地址,然后子函数在其中填充,比如要准会的整数是56

void fun(int *a,int b) { ... }

void main() { int a[20];

fun(a,56);

}

C程序中如何将一个子函数得到的数组返还到主函数中?

char a[100];

/*

数组a为自动分配内存,即分配栈空间,程序运行脱离这个函数时,会有清栈

操作,所以a无法返回;

若要返回数组,需分配堆空间:

char *a = (char*) malloc(sizeof(char) * 100);

并且store函数返回值应为char*;

使用完毕后在函数外还需清除内存:

char *aa = store(..);

...

free(aa);

*/


名称栏目:数组返回主函数c语言 如何返回数组c语言
标题网址:http://pwwzsj.com/article/dddcejd.html