用C语言写了一个函数,需要返回一个数组,但好像C不能返回数组吧

来源:百度知道 编辑:UC知道 时间:2024/06/05 18:51:27
如果返回数组第一个元素的地址,由于这个数组是局部变量,那调用这个函数时数组的其他元素不就返回不了了?

1,把数组定义成全局变量,全局变量是在程序运行结束后才被释放的,可以返回

2,用malloc函数手动分配数组的地址,这样数组就被保存在堆中,在函数结束时不会被系统回收,在程序结束的时候也不会被系统回收,所以在程序结束的时候一定要注意对这块内存的回收释放,避免内存泄露。

3,把函数的形参写成指针类型的,数组定义在调用函数里面,把指针传给处理函数,处理函数处理完之后返回数组的指针,也可以

就想到这三种,请楼下指教!

这个问题有两个方面:

1.如果是局部变量,并且是自动变量,那么返回后,它们占用的空间就被释放了,也就是说,返回后,它们的值不再具有可用性。

2.返回数组的首地址,也就相当于返回了数组,因为数组元素是顺序存储的。