我无法弄清楚如何在Objective-C中传递我的二维数组。我会对我做错的事情有所帮助。我一直在说错误:
'displayGameBoard'的冲突类型
这是我的代码:
//protype
void displayGameBoard (NSInteger)
//int main function
NSInteger gameBoard [3][3] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; // declaring
// caller
displayGameBoard (gameBoard [3][3])
// function receiving data from array
void displayGameBoard (NSInteger gameBoard [3][3])
{
// rest of my code
}
答案 0 :(得分:1)
实际上它与C语言中的二维数组完全相同。
您的函数定义很好,但声明不正确。它应该是
void displayGameBoard (NSInteger[3][3]);
就像它在定义中一样。
答案 1 :(得分:1)
问题在于你打电话给你的功能。写
displayGameBoard (gameBoard [3][3])
gameBoard [3][3]
表示第4列第4行的元素。当你这样做时得到一个NSInterger
。但是displayGameBoard
需要指向NSInteger
或NSInteger *
的指针。因此编译器看到类型不匹配并导致错误。
纠正这个问题的方法是
//protype
void displayGameBoard (NSInteger[3][3]) // Must have the same argument type in your pro to type as the implementation.
//int main function
NSInteger gameBoard [3][3] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; // declaring
// caller
displayGameBoard (gameBoard) // Place in the entire array not just an element
// function receiving data from array
void displayGameBoard (NSInteger gameBoard [3][3])
{
// rest of my code
}
答案 2 :(得分:0)
由于它是一个二维数组,因此应该初始化为:
NSInteger gameBoard [3][3] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}};