主题:[讨论]如何让函数的返回值为完整的数组 ??
与天比高
[专家分:40] 发布于 2010-04-15 21:20:00
这几天写了一个小程序,用到了返回值为数组的情况,自己考虑了很久,也查了一些资料但是没有找到好的解决办法。特到这里来请教一下大家:
在主函数中,下一步要用到上一步的被调函数中计算出的数组,这个数组是在被调函数中生成的,包括数组名和数组的长度,那么我怎么操作才能返回这两个元素呢?数组名和数组长度!!还有我这个子函数是在一个循环中的,子函数的下一步语句中只用到本次循环中产生的数组,用完以后就释放。所以如果用static声明话会在下一次循环产生的数组中包括上次循环的元素,不符合要求。不知道该怎么解决呢??求高人指教。。。
回复列表 (共10个回复)
沙发
miaoyong [专家分:760] 发布于 2010-04-15 21:58:00
用结构体存储你得数据, 在每次循环调用函数前,清空定义的结构体对象!再引用!
不用声明static 类型!
板凳
eastcowboy [专家分:25370] 发布于 2010-04-16 01:39:00
语法决定了,不能返回数组。其实很简单,函数的返回值必须可以成功的赋值到一个变量中。但是数组无法被赋值,所以不能返回数组。
数组是一种类型,而且长度不同的数组是不同的类型。但是一个函数只能返回一种类型,所以也无法返回任意长度的数组。
如果用C++的话,可以让函数返回一个vector
3 楼
雪光风剑 [专家分:27190] 发布于 2010-04-16 07:40:00
尝试抛弃数组改用链表的话会让数据结构的处理上相对简单一些
4 楼
liudan319 [专家分:3780] 发布于 2010-04-16 08:30:00
返回数组的指针……
5 楼
howardqqme [专家分:20] 发布于 2010-04-16 09:56:00
函数的参数中加数组名啊
eg,int solu(a[])//地址传值
{
return length;
}
6 楼
miaoyong [专家分:760] 发布于 2010-04-16 22:56:00
返回数组指针,或结构体指针!我用过!
7 楼
吉利儿jj [专家分:0] 发布于 2010-04-17 08:45:00
可以使用自定义数组类!!!!!!!!!
8 楼
zhaoyg [专家分:4790] 发布于 2010-04-17 12:20:00
返回数组引用
9 楼
龙母绘龙 [专家分:50] 发布于 2010-04-24 20:09:00
你可以声明一个结构体或者是类,都能满足你的要求
10 楼
强强 [专家分:4740] 发布于 2010-04-24 21:55:00
NEW一个动态数组,返回其指针,用完DELETE
我来回复