C++中函数返回值是否可以是个数组?

C++中函数返回值是否可以是个数组?
如果是,一唯、二维、三维都可以吗?
请指教
如果是Java,那该怎么办?

可以!!
几维都行,因为返回的是个指针,是地址,是连续地址空间的首地址,由这个地址加上偏移量就可以找到数组中其他元素了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2005-11-21
函数的返回值可以是一个n维数组的数组名,比如
int a[M][N];
fun(int **a);
这样的声明是合法的。
但是
fun2(int a[M][N]);
这样的声明就不好了,在vc中编译是无法通过的。
第2个回答  2005-11-22
在C++返回数组会导致一些问题的.
比如
int* fun1()
{
int a[10];
return a;
}
//这可能会导致内存问题,因为a是fun1的局部变量,当fun1退出后,a指向的空间即被释放,而a的值又被你return回去保存了,以后再用的时候会使用成一个指向未分配空间的指针。

就算是用malloc或new,会出现内存泄漏的问题
int* fun2()
{
int* a;
a=(int*)malloc(10*sizeof(int));
return a;
}
这样你没法释放a,即malloc没有free与之对应,new也是同理,没有delete对应(别说你会在main只记得,函数的使用者不会知道一个函数是不是分配了空间的)。本回答被网友采纳
第3个回答  2005-11-21
不可以,但是可以返回指向数组的指针,如下所示:
#include <stdio.h>
int a[4];
int (*func())[4]
{
return &a;
}
int main()
{
printf("%p\n",func());
return 0;
}
第4个回答  2005-11-21
不可以。可以用指针。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网