我想使用从函数返回的二维整数数组,应该如何定义函数返回值? 我用了int **,但编译器报错:
int** tableCreator(){
int** table=new int[10][10];
for(int xxx=1;xxx<10;xxx++){
for(int yyy=1;yyy<10;yyy++){
table[xxx][yyy]=xxx*yyy;
}
}
return(table); //Here:cannot convert from 'int (*)[10]' to 'int **'
}
new
进行容易分配,并且可以通过单个delete
进行回收,使用多个new
和delete
调用是浪费的。可变长度数组可以通过各种方式支持,而不需要多次分配和释放。 - Eric Postpischilint a[M]
、int a[M][N]
等的数组,其中一个或多个维度不是编译时常量。具有不同长度的数组数组不能被正确地称为“多维数组”,它是一种不同的数据结构。问题并没有要求这样的数据结构。它甚至没有要求我所描述的可变长度数组;它只是请求一个具有常量维度的简单二维数组。 - Eric Postpischil