关于返回值

expter 2006-11-20 01:41:59
定义1个函数f(long a);
这个将返回1个数组....

在组函数怎么接受这个返回值啊...
...全文
163 点赞 收藏 3
写回复
3 条回复
owlling 2006年11月20日
这儿有两个问题,
第一,作为返回数组,你不能是stack的数组。也就是说你不能
int* f()
{
int a[10];
return a;
}
因为随着函数的结束,stack变量会消亡的,你得使用heep上空间,也就是说你得这样
int* f()
{
int* a = new int[10];
return a;
}
第二,在main端,你可以使用指针得到该数组的句柄,但是由于他是heep数组,你还要记得释放他,以免内存泄漏
int main()
{
int* p = f();
p[1]=10;
delete[] p;
return 0;
}
当然,如果你不是非用返回值不可的话,可以使用daiyong_79(口笛) 建议的方法,实现变量的引用语义、、

回复 点赞
KUCHIBUE 2006年11月20日
建议你在主程序里定义好数组再传进函数里......
void func(int *&ppp)
{
//...
}

int main()
{
int pp[200];
func(pp);
}
回复 点赞
weixing979 2006年11月20日
可以返回指向这个数组的指针
回复 点赞
发动态
发帖子
非技术区
创建于2007-09-28

4415

社区成员

5.8w+

社区内容

C/C++ 非技术区
社区公告
暂无公告