Olh*_*iuk 6 c++ dynamic-arrays
我有这样的功能:
void findScarf1(bool ** matrix, int m, int n, int radius, int connectivity);
Run Code Online (Sandbox Code Playgroud)
在main函数中我创建了2d动态数组来传递这个函数
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}
};
Run Code Online (Sandbox Code Playgroud)
问题是:
findScarf1(matrix, 6, 7, 3, 4);
Run Code Online (Sandbox Code Playgroud)
导致 错误C2664:'findScarf1':无法将参数1从'bool [6] [7]'转换为'bool**'
如何紧凑地初始化数组(同时声明)?
抱歉,如果这是重复的问题,但我花了1.5个小时搞清楚
从技术上讲,二维数组是一维数组的数组。所以它不能转换为指针到指针。不过,它可以转换为指向数组的指针。
所以这应该有效:
void findScarf1(bool (*matrix)[7], int m, int n, int radius, int connectivity);
Run Code Online (Sandbox Code Playgroud)
这里bool (*matrix)[7]声明了一个指向 7 bool 数组的指针。
希望有帮助。