有人可以帮我弄清楚如何将动态创建的数组作为函数参数传递。
我创建了一个2D动态数组,如下所示:
//matrix rows and columns
int rows=0;
int cols=0;
int** matrix = new int*[rows];
//creates the matrix
for (int i =0; i < rows; ++i)
matrix[i] = new int[cols];
我想将这个数组传递给一个带有这样原型的函数:
void readMatrix(int **matrix[], int size);
我无法弄清楚如何做到这一点!我不知道论证应该是什么样的,我尝试了很多不同的方法而且都没有用。得到错误表示&#34;期待表达&#34;或&#34;参数不匹配参数&#34;
答案 0 :(得分:2)
该函数指定类型的int **matrix[]
,它等同于类型int ***matrix
。所以你需要的是另一个间接。使用&matrix
作为参数。
另外,正如评论中所提到的,重新思考使用普通数组的整个想法,而不是更现代的std::vector<>
。