我有一个256x256二维浮点数组,我试图传递给一个函数,g ++给我错误信息:Cannot convert 'int (*)[256]' to 'int**'
。我该如何解决这个问题?
void haar2D(int** imgArr);
int imageArray[256][256];
haar2D(imageArray);
我尝试将函数参数更改为int[256][256]
和int*[256]
类型,但没有成功。
答案 0 :(得分:3)
必须按编译器声明的那样声明函数参数。
所以声明它就像
void haar2D( int imgArr[256][256] );
或
void haar2D( int imgArr[][256] );
或喜欢
void haar2D( int ( *imgArr )[256] );
考虑到像数组一样声明的参数被调整为指向其元素的指针。
或者您可以将参数声明为对数组的引用
void haar2D( int ( & imgArr )[256][256] );
答案 1 :(得分:0)
如果您不想更改此功能。
void haar2D(int** imgArr);
您可以尝试更改imageArray。
int **imageArray=new int*[256];
for (int i = 0; i < 256; ++i)
{
imageArray[i] = new int[256];
}
然后
haar2D(imageArray);