将动态创建的数组作为参数传递

时间:2017-04-08 17:38:07

标签: c++ arrays function memory dynamic

有人可以帮我弄清楚如何将动态创建的数组作为函数参数传递。

我创建了一个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;

1 个答案:

答案 0 :(得分:2)

该函数指定类型的int **matrix[],它等同于类型int ***matrix。所以你需要的是另一个间接。使用&matrix作为参数。

另外,正如评论中所提到的,重新思考使用普通数组的整个想法,而不是更现代的std::vector<>