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

return 问题

yjbgwxf2008 发布于 2007-11-19 15:53, 1188 次点击
怎样return 一列数组呀?比如说return a[1],a[2],...a[n]
17 回复
#2
随心2007-11-19 16:06
return 数组名不就行了。
然后操作这个指针就行了

[此贴子已经被作者于2007-11-19 16:07:21编辑过]

#3
无缘今生2007-11-20 11:17
楼上说得不错.

数组名就是一个指针.
你返回它就得把函数的返回值改一下哦.
#4
zjl1382007-11-20 12:18
支持
#5
wangchuansu2007-11-20 13:10
返回一个数组名,也就是地址~!
#6
aipb20072007-11-20 13:41

[CODE]
#include <iostream>
using namespace std;

/**
The caller is responsile for freeing the memory.
*/
int* f(int n)
{
int* a = new int[n];
for(int i=0; i<n; ++i)
a[i] = n;

return a;
}

int main()
{
int n=6;
int* b = f(n);

for(int i=0; i<n; ++i)
cout<<b[i]<<" ";
cout<<endl;

delete [] b;

return 0;
}


[/CODE]

都不看别人的回复吗?

#7
nuciewth2007-11-20 16:00
对返回来的数组(指针),不能修改其元素值!
#8
cince2007-11-20 20:43
回复:(aipb2007)[CODE]#include u...

在main()进行释放.

好像在Dev-C++ 中没有办法编译通过.

它会指出源文件没有编译

#9
aipb20072007-11-20 21:42
以下是引用nuciewth在2007-11-20 16:00:40的发言:
对返回来的数组(指针),不能修改其元素值!

可以。

如果返回类型是const int*那就不可以。

#10
aipb20072007-11-20 21:43
以下是引用cince在2007-11-20 20:43:07的发言:

在main()进行释放.

好像在Dev-C++ 中没有办法编译通过.

它会指出源文件没有编译

任何标准c++编译器均可通过!

#11
nuciewth2007-11-20 22:18
以下是引用aipb2007在2007-11-20 21:42:34的发言:

可以。

如果返回类型是const int*那就不可以。

你试下.

#12
tzqiuqing2007-11-20 22:49
回复:(cince)回复:(aipb2007)[CODE]#include u....

是dev c++是可以通过的!

#13
随心2007-11-21 12:00

人家没说要修改元素的值,只是说要一个一个的输出.

#14
aipb20072007-11-21 12:45
以下是引用nuciewth在2007-11-20 22:18:22的发言:

你试下.

你也试下.

#15
随心2007-11-21 13:00

我试了,能通过编译,并且正确运行.
#include <iostream>
using namespace std;
int* arrary()
{
int int_arrary[]={1, 2, 3};
return int_arrary;
}

int main()
{
int *p;
p = arrary();
p[0] = 8;
cout << p[0] << endl;
system("pause");
return 0;
}

#16
neverDie2007-11-21 17:13

楼上代码不正确
函数里要用动态数组

#17
我是杨过2007-11-25 11:21
没问题可以修改,兄台多虑了。

原帖由 [bold][underline]nuciewth[/underline][/bold] 于 2007-11-20 16:00 发表 [url=http://bbs.bc-cn.net/redirect.php?goto=findpost&pid=1108264&ptid=187200][/url]
对返回来的数组(指针),不能修改其元素值!
#18
静思2007-11-25 17:04
回复 15# 的帖子
15#有误,返回的是一个局部变量,出了array()这个函数之后,init_array这个空间的数组会被释放,主函数得到是一组垃圾值
1