C++问题:怎样让函数的返回值为一个多维数组????

2025-02-23 21:57:19
推荐回答(2个)
回答1:

可以用指针传地址过来。我举个例子吧。
#include
int* red(int len);
main()
{
int a,b,*c;
c=red(10);
for(a=0;a<10;++a)
for(b=0;b<10;++b)
printf("%5d",*(c+a*10+b));
free(c);
return 0;
}
int* red(int len)
{
int *sp,a,b;
sp=malloc(sizeof(int)*len*len);
for(a=0;a for(b=0;b *(sp+a*len+b)=a*len+b;
return sp;

}

回答2:

显然是不能的。返回类型是必须确定的,而按你的意思,就必须返回一个不确定的类型。
当然,如果不死抠这点,只讲实际编程的话,这个问题是可以解决的,定义一个结构体(或者类),保存数组指针和维数,然后返回这个结构体就可以了。