如何解决如何将2D数组作为参数发送给递归函数?
我有一个简单的测试函数,该函数获取2D数组的行和列索引,并检查该位置的2D值是否为2。如果不是,它将检查下一个行索引,直到检查完毕该行中每个元素的值2:
1 bool rowContainsTwo(const int rowIndex,const int columnIndex,const int size,const int grid[size][size]) {
2 if (grid[rowIndex][columnIndex] == 2)
3 return true;
4 else
5 return (rowIndex + 1 < size) ? rowContainsTwo(rowIndex + 1,columnIndex,size,grid) : false;
6 }
$ g++ -std=c++11 test.cpp -o test
test.cpp:5:84: error: cannot initialize a parameter of type 'const int (*)[*]' with an lvalue of type 'const int (*)[size]'
return (rowIndex + 1 < size) ? rowContainsTwo(rowIndex + 1,grid) : false;
^~~~
test.cpp:1:90: note: passing argument to parameter 'grid' here
bool rowContainsTwo(const int rowIndex,const int grid[size][size]) {
^
1 error generated.
我已经看过各种有关将2D数组作为函数参数传递的文章,但是我还没有看到任何有关此错误的信息,以及如何递归将数组传递给函数 / em>。
我希望获得一个直接的答案,即如何以递归方式传递静态数组作为参数,而不必使其成为动态数组。
请注意,我不需要修改数组元素,只需要查看元素即可。
还要注意,我知道使用向量会更好,并且我可以使用循环和各种迭代方法-设置了约束,我想使用静态2D数组来完成此操作,并且我想递归地将数组作为参数传递。
感谢阅读!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。