我有一个 256x256 的二维 float 组,我试图将其传递给函数,但 g++ 给我错误消息:无法将 'int (*)[256]' 转换为 'int** '
。我该如何解决这个问题?
void haar2D(int** imgArr);
int imageArray[256][256];
haar2D(imageArray);
我曾尝试将函数参数更改为 int[256][256]
和 int*[256]
类型,但没有成功。
最佳答案
必须按照编译器的要求声明函数参数。
所以声明它要么像
void haar2D( int imgArr[256][256] );
或
void haar2D( int imgArr[][256] );
或者喜欢
void haar2D( int ( *imgArr )[256] );
考虑到像数组一样声明的参数被调整为指向其元素的指针。
或者您可以将参数声明为对数组的引用
void haar2D( int ( & imgArr )[256][256] );
关于c++ - 无法将 'int (*)[size]' 转换为 'int**',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34188355/