我有一个函数,我想作为一个参数,一个可变大小的2D数组.
到目前为止我有这个:
void myFunction(double** myArray){
myArray[x][y] = 5;
etc...
}
Run Code Online (Sandbox Code Playgroud)
我在代码中的其他地方声明了一个数组:
double anArray[10][10];
Run Code Online (Sandbox Code Playgroud)
但是,调用myFunction(anArray)给了我一个错误.
当我传入数组时,我不想复制数组.所做的任何更改都myFunction应该改变数据的状态anArray.如果我理解正确,我只想作为参数传入指向2D数组的指针.该函数还需要接受不同大小的数组.例如,[10][10]和[5][5].我怎样才能做到这一点?
可能重复:
将表示2D数组的指针传递给C++中的函数
我试图通过指针将我的二维数组传递给函数,并希望修改值.
#include <stdio.h>
void func(int **ptr);
int main() {
int array[2][2] = {
{2, 5}, {3, 6}
};
func(array);
printf("%d", array[0][0]);
getch();
}
void func(int **ptr) {
int i, j;
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
ptr[i][j] = 8;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但程序崩溃了.我做错了什么?
我有一个256x256的二维浮点数组,我试图将其传递给函数,而g ++给了我错误消息:Cannot convert 'int (*)[256]' to 'int**'。我该如何解决?
void haar2D(int** imgArr);
int imageArray[256][256];
haar2D(imageArray);
Run Code Online (Sandbox Code Playgroud)
我试图将功能参数更改为类型int[256][256],int*[256]但没有成功。