无法将'int (*)[size]'转换为'int**'
Cannot convert 'int (*)[size]' to 'int**'
我有一个256x256的二维浮点数组,我正试图将其传递到函数中,g++会给我错误消息:Cannot convert 'int (*)[256]' to '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] );
如果您不想更改函数。
void haar2D(int** imgArr);
您可以尝试更改imageArray。
int **imageArray=new int*[256];
for (int i = 0; i < 256; ++i)
{
imageArray[i] = new int[256];
}
然后
haar2D(imageArray);
相关文章:
- 在函数中使用 const int size 参数创建数组会在 Visual Studio 中抛出错误 C++:表达式的计
- 行 - " vector<int> used(adj.size(), 0); "是什么意思?
- 与 string.size() 比较时 int 的符号性显示警告
- 错误:'class std::unique_ptr<std::set<long unsigned int> >'没有名为 'size' 的成员
- 为什么选择 g++ 给予者:"error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]"
- 声明数组时出现 SIGSEGV 错误,而不创建新的 int[size]
- 如何在没有参数的情况下实现返回双向链表大小的函数?int size() const.
- 错误:"SIZE"在使用模板<类 T、int MAX_SIZE >时无法出现在常量表达式中
- 调用 size() 的常量映射<字符串,矢量<int>>导致错误
- 如何声明将使用 map.size() 计算的 int 类型
- 为什么 std::array::size constexpr 具有简单类型(int、double、..),而不是 std
- C/C++:在32位机器上的sizeof(short)、sizeof(int)、sizeof(long)、size of
- 对于下面的代码,我将 decltype(s1.size()) 更改为 int,代码工作正常.在这种情况下,decltyp
- 断言失败 <0 <= i && i < <int>vv.size<>> 在未知函数中,文件 src\matrix.cpp,第 912 行
- 为什么QVector::size返回int ?< / h1 >
- new int[size] vs std::vector
- 无法将'int (*)[size]'转换为'int**'
- 可以将vector.size()的结果存储到int类型的变量中吗
- 错误 C2664: 'cv::Mat::Mat(int,int,int)' : 无法将参数 1 从 'cv::Size' 转换为 'int'
- for(int i=0;i<myVector.size();++i) size() 被调用了多少次?