我正在尝试制作一个适用于2D数组的简单测试函数。目标是处理2D数组,将每个整数增加1,然后返回2D数组。
但是我在方法声明方面遇到了一些麻烦。到目前为止我试过这个:
//this is the part that does not work
-(int[][])incrementBoard:(int[][])board{
...
}
然而,这会产生错误。返回类型应该是int [] []类型,它应该能够处理int [] []数组的输入。
我看过this问题,我还是找不到如何声明这个函数。
提前谢谢你,
修改
该功能现在有效。但是,当我尝试传递2D数组时,它会崩溃线程1的错误访问,并且消息incompatible pointer types passing int[8][8] to parameter of type int**
如何编辑函数,使其接受int [] []?
类型的数组答案 0 :(得分:0)
尝试使用true c函数而不是obj-c方法。 一世。即使用
int** incrementBoard(int** board, i, j /*array length*/){}
而不是
-(int **)incrementBoard:(int **)board{}
它应该可以解决你的问题。
<强>更新强>
如果您在编译时知道数组大小,则可以使用
int[8][8] incrementBoard(int[8][8] board){}
答案 1 :(得分:0)
回复有点迟,但我想我应该发布工作答案:
int incrementBoard(int board[][8]){
}
所以一个可以采用2D数组的方法(比如说整数)就像:
int function(int array[][])
类似于admin的答案,因为它是一个C函数,只是方括号。