C语言函数如何return数组?

有没有办法让一个函数return一个这个函数中的数组?请给个小例子并解释一下,谢谢!

数组在作为函数返回值或者函数参数时,实际上只作为指针来返回或者传递的。因此返回值用指针数据类型。比如下面的代码:

int g_a[4] = {1,2,3,4};
int * retn_arrary() //返回值用指针类型即要。
{
return g_a; 
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-01

C语言里无法返回数组,返回指针倒是可以,但是返回一个指向局部变量的指针没有任何意义

#include <stdio.h>
#include <string.h>
char *func(const char *s)
{
char *p=(char *)malloc(sizeof(char)*strlen(s));
strcpy(p,s);
return p;
}

int main(void) 
{
char *s=func("hello world");
puts(s);
return 0;
}

本回答被提问者采纳
第2个回答  2014-02-09

返回数组绝不可能,跟数组作为参数的情况一样

几种变通办法:

    返回成员是数组的结构体

    返回指向静态数组的指针

    让指向数组的指针和数组长度作为参数,把要返回的东西memcpy到作为参数的指针指向的数组中

本回答被网友采纳
第3个回答  2014-02-09
函数不须用的return就能直接返回数组的,

void fun(char x[])
{x[0]='a';}

main()
{char a[10]="12345";
void fun(char x[]);
fun(a);
printf("%s\n",a);
}
相似回答