注册 登录
编程论坛 C++教室

怎样返回数组

love342 发布于 2009-07-24 19:55, 3936 次点击
我是一个初学者,我想问一下在函数中我怎样将一个数组返回给main函数。谢谢大家!
9 回复
#2
黯然神伤2009-07-24 21:43
数组是没有办法返回主函数的,因为每次只能返回一个数据,想要解决这个问题你可以在主函数定义一个指针,在子函数中调用指针,这样就可以了
#3
mfkblue2009-07-24 21:51
#include <iostream.h>
int * re()
{
    int a[10];
    for(int i=0;i<10;i++)
    a[i]=i;
    return a;
}

void main()
{
    int *b;
    b=re();
    cout<<b[1];

}
这样行不
#4
ET_bug2009-07-24 23:08
赞同2楼,3楼的想法,要返回数组只能用指针实现
#5
yu5890681yu2009-07-24 23:16
回复 楼主 love342
楼主要是想用数组中的某个元素的话,直接返回就行了,如果要是用整个数组,建议定义一个指针指向数组的首元素,然后返回这个指针就行了
#6
pangding2009-07-25 00:01
回复 3楼 mfkblue
3楼说的不行。

函数里定义的 int a[10] 是个局部变量。生存期就函数那么短,等函数返回了,生存期就没了,外面的b接到了只是一个当时a数组的首地址,但那个数组现在已经没了,那片内存里现在还有什么就说不清了。
这么写是很危险的,一般编译器可能会报类似“返回局部变量的地址”之类的警告,要避免写这样的代码。

当然如果用的数组是个全局数组,那就没是了。但全局数组也没有什么传参,或者返回的需要。
没有直接返回一个数组的语法。(当然要用类似封装一个数组也话可以,但那样做既没有效率,也没什么特别的意义。)
对于数组一般在参数或返回值这里理解成指针要好一些~
#7
cedricporter2009-07-28 22:21
回复 6楼 pangding
一语惊醒梦中人...
#8
bmc2009-07-29 00:15
回复 6楼 pangding
顶!说的透彻!
#9
mfkblue2009-07-29 15:55
。。。
还好来看了一眼,我经常这样写.
#10
cqcqcqcq5552009-07-29 21:43
……可以这样的啊……我居然每次都是建立一个类来代替数组返回……
1