我有一个函数,我想将可变大小的二维数组作为参数。
到目前为止我有这个:
void myFunction(double** myArray){
myArray[x][y] = 5;
etc...
}
我在代码中的其他地方声明了一个数组:
double anArray[10][10];
然而,调用myFunction(anArray)
给我一个错误。
当我传入数组时,我不想复制该数组。在中进行的任何更改myFunction
应该改变的状态anArray
。如果我理解正确的话,我只想将指向二维数组的指针作为参数传递。该函数还需要接受不同大小的数组。例如,[10][10]
and [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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)