C语言函数如何return数组?

有没有办法让一个函数return一个这个函数中的数组?请给个小例子并解释一下,谢谢!... 有没有办法让一个函数return一个这个函数中的数组?请给个小例子并解释一下,谢谢! 展开
 我来答
吉祥二进制
高粉答主

推荐于2017-09-23 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84573

向TA提问 私信TA
展开全部

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

int g_a[4] = {1,2,3,4};
int * retn_arrary() //返回值用指针类型即要。
{
return g_a; 
}
shine1991
科技发烧友

推荐于2017-10-01 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部

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;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjfaok
2014-02-09 · TA获得超过6805个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1585万
展开全部

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

几种变通办法:

  1. 返回成员是数组的结构体

  2. 返回指向静态数组的指针

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

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zpue1234
2014-02-09 · 超过29用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:66.3万
展开全部
函数不须用的return就能直接返回数组的,

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

main()
{char a[10]="12345";
void fun(char x[]);
fun(a);
printf("%s\n",a);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式