c++ - 无法将 'int (*)[size]' 转换为 'int**'

标签 c++ multidimensional-array parameters compiler-errors implicit-conversion

我有一个 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/

相关文章:

php - 统一排列/分布数组项

在 C 中创建字符串值并将其添加到二维数组

c# - 将代码作为参数C#传递

java - 子类类型作为父类(super class)构造函数java中的参数类型

c++ - 使用 shared_ptr 将 base 抽象为 boost.python 的持有者

php - 我应该怎么做才能在我自己的网络服务器上执行 php 脚本?

c++ - Visual C++ 对 std::map 的实现

c++ - '__builtin_address of' : identifier not found when running opencv in Visual Studio 2015

python - 使用列表从 numpy 数组数组中提取元素

variables - 如何初始化以变量作为参数的结构实例