【发布时间】:2013-07-10 09:10:22
【问题描述】:
我有这样的功能:
void findScarf1(bool ** matrix, int m, int n, int radius, int connectivity);
在 main 函数中,我创建了二维动态数组来传递这个函数
bool matrix[6][7] = {
{0, 0, 1, 1, 1, 0, 0},
{0, 0, 1, 1, 1, 0, 0},
{0, 0, 1, 1, 1, 0, 0},
{0, 0, 1, 1, 1, 0, 0},
{0, 0, 1, 1, 1, 0, 0},
{0, 0, 1, 1, 1, 0, 0}
};
问题是:
findScarf1(matrix, 6, 7, 3, 4);
原因 错误 C2664: 'findScarf1' : 无法将参数 1 从 'bool [6][7]' 转换为 'bool **'
如何紧凑地初始化数组(与声明同时)?
附言抱歉,如果这是重复的问题,但我已经花了 1.5 个小时弄清楚了
【问题讨论】:
-
数组不是指针。您正在将一个指针(衰减后)传递给一个需要指向指针的指针的数组。
-
试试:
bool matrix[6][7]、bool matrix[][7]、bool (*matrix)[7] -
或者直接使用
std::array:std::array<std::array<bool, 6>, 7>。另外,这不是动态数组。
标签: c++ dynamic-arrays