c语言在函数中返回数组,关于C语言函数返回数组的问题

关于C语言函数返回一个数组

c语言中函数不能直接返回一个数组,但是可以用其他方式实现类似功能,不过需要注意:

1、该数组不能是返回函数的局部变量数组,因为局部变量数组在退出函数后会被释放。

可以是全局变量,静态局部变量,动态分配内存,以及从函数参数传过来的数组地址。

2、返回指针时,无法返回长度,所以需要其它方式传回数组长度,以下是几种常用的方法。

1) 约定固定长度;

2) 以函数参数返回数组长度;

3)将长度保存在全局变量中;

4)约定数组结束标记;

5)在数组中存储数组长度,如存在第一个元素中。

有些时候需要子函数将一个数组返回出来,通常是两种方法,一种是靠指针,另一种是结构体。

一、先来看依靠指针怎么做

#include

char *test(char *tmp)

{

return tmp;

}

void main(void)

{

printf("%s",test("第一个测试例子\n"));

}

二、使用结构体作为返回值来传递数组

#include

#include

#include

#ifdef _WIN32

//#include

#include

#endif

//直接返回指针,但是无法返回长度

char *test(char *tmp)

你可能感兴趣的:(c语言在函数中返回数组)