目标C中的二维阵列返回方法

时间:2015-06-16 17:44:01

标签: objective-c arrays methods

我正在尝试制作一个适用于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 [] []?

类型的数组

2 个答案:

答案 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函数,只是方括号。