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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言子函数如何返回一个数组,主函数如何接收?相关的知识,希望对你有一定的参考价值。

子函数求得一个整数每一位的数值,存在数组中该如何返回给主函数?

一般是需要主函数提供保存数据的数组,在参数中给出数组起始地址,然后子函数在其中填充,比如要准会的整数是56
void fun(int *a,int b) ...
void main() int a[20];
fun(a,56);

参考技术A 可用整数类型接收
再把这个地址给一个数组变量
也就是让这个数组指向返回数组的首地址

C语言函数如何return数组?

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

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

int g_a[4] = 1,2,3,4;
int * retn_arrary() //返回值用指针类型即要。

return g_a; 
参考技术A

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;

本回答被提问者采纳
参考技术B

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

几种变通办法:

    返回成员是数组的结构体

    返回指向静态数组的指针

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

参考技术C 函数不须用的return就能直接返回数组的,

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

main()
char a[10]="12345";
void fun(char x[]);
fun(a);
printf("%s\n",a);


以上是关于C语言子函数如何返回一个数组,主函数如何接收?的主要内容,如果未能解决你的问题,请参考以下文章

在c语言中子函数引用主函数中的值和引用主函数某个值的地址的区别

函数要返回两个值时,主函数的接收要怎么做

如何解决此错误“'int'之前的预期主表达式?”

很急,我用keil写一个C语言子函数,去调用数组,怎么写,例如

C语言如何写有返回值的函数

c语言编程,我要把子文件中获取的数据传回主文件中的一个函数该怎么编程序