我有一个函数,我想将可变大小的二维数组作为参数。
到目前为止我有这个:
void myFunction(double** myArray){
myArray[x][y] = 5;
etc...
}
我已经在代码中的其他地方声明了一个数组:
double anArray[10][10];
但是,调用 myFunction(anArray)
会出现错误。
我不想在传入数组时复制该数组。myFunction
中所做的任何更改都应该改变 anArray
的状态。如果我理解正确的话,我只想将指向二维数组的指针作为参数传递。该函数还需要接受不同大小的数组。例如,[10][10]
和 [5][5]
。我怎样才能做到这一点?
最佳答案
可以通过三种方式将二维数组传递给函数:
参数是一个二维数组
int array[10][10]; void passFunc(int a[][10]) { // ... } passFunc(array);
参数是一个包含指针的数组
int *array[10]; for(int i = 0; i < 10; i++) array[i] = new int[10]; void passFunc(int *a[10]) //Array containing pointers { // ... } passFunc(array);
参数是一个指向指针的指针
int **array; array = new int *[10]; for(int i = 0; i <10; i++) array[i] = new int[10]; void passFunc(int **a) { // ... } passFunc(array);
关于c++ - 将 2D 数组传递给 C++ 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28310886/