.h文件
@interface GameState :NSObject{
int SymbolsPositions[3][5];
}
-(void)SaveCurrentGameState:(int **)Array;
@end
@interface GameViewController : UIViewController
{
...
int sequence_after_spin[3][5];
...
}
-(Void)AMethod;
@end
.m文件
@implementation GameState
-(void)SaveCurrentGameState:(int **)Array
{
for(int i = 0;i<5;i++)
for(int j = 0;j<3;j++)
NSLog(@" %d",Array[j][i]);
}
@end
@implimentation GameViewController
-(void)AMethod
{
[instanceOfGameState SaveCurrentGameState:sequence_after_spin];
}
@end
当AMethod在警告之后被调用时,应用程序崩溃
warning: incompatible pointer types sending 'int [10][5]' to parameter of type 'int **' [-pedantic]
答案 0 :(得分:5)
参数需要采用int [] [5]数组,原因是编译器需要知道列数才能正确识别成员的位置。如果总是采用相同大小的数组,也可以指定int [10] [5]作为参数类型。
答案 1 :(得分:0)
虽然可能有其他错误,但我看到的是
for(int i;i<5;i++)
for(int j;j<3;j++)
NSLog(@" %d",Array[j][i]);
您没有将初始值设置为i
和j
。 <{1}}和i
可能是任何垃圾值。
j