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

Passing a Dynamically Created Array as an Argument

本文关键字:参数传递 数组 动态 创建      更新时间:2023-10-16

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

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

我不知道该怎么做!我不知道论点应该是什么样子,我尝试了很多不同的方法,但没有一种奏效。收到提示"期望表达式"或"参数与参数不匹配"的错误

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

此外,正如评论中提到的,重新考虑使用纯数组的整个想法,以支持更现代的std::vector<>数组。