回 帖 发 新 帖 刷新版面

主题:[讨论]如何让函数的返回值为完整的数组 ??

这几天写了一个小程序,用到了返回值为数组的情况,自己考虑了很久,也查了一些资料但是没有找到好的解决办法。特到这里来请教一下大家:
在主函数中,下一步要用到上一步的被调函数中计算出的数组,这个数组是在被调函数中生成的,包括数组名和数组的长度,那么我怎么操作才能返回这两个元素呢?数组名和数组长度!!还有我这个子函数是在一个循环中的,子函数的下一步语句中只用到本次循环中产生的数组,用完以后就释放。所以如果用static声明话会在下一次循环产生的数组中包括上次循环的元素,不符合要求。不知道该怎么解决呢??求高人指教。。。

回复列表 (共10个回复)

沙发

用结构体存储你得数据, 在每次循环调用函数前,清空定义的结构体对象!再引用!
不用声明static  类型!

板凳

语法决定了,不能返回数组。其实很简单,函数的返回值必须可以成功的赋值到一个变量中。但是数组无法被赋值,所以不能返回数组。
数组是一种类型,而且长度不同的数组是不同的类型。但是一个函数只能返回一种类型,所以也无法返回任意长度的数组。

如果用C++的话,可以让函数返回一个vector

3 楼

尝试抛弃数组改用链表的话会让数据结构的处理上相对简单一些

4 楼

返回数组的指针……

5 楼


函数的参数中加数组名啊 
eg,int solu(a[])//地址传值
{
   return length;
}

6 楼

返回数组指针,或结构体指针!我用过!

7 楼

可以使用自定义数组类!!!!!!!!!

8 楼

返回数组引用

9 楼


你可以声明一个结构体或者是类,都能满足你的要求

10 楼

NEW一个动态数组,返回其指针,用完DELETE

我来回复

您尚未登录,请登录后再回复。点此登录或注册