我是新手,试图制作扫雷应用程序
我用IBButton来重置雷区 这是结构的2乘2矩阵
- (IBAction) Reset {
for (int x = 0 ; x < 10 ; x ++) {
for (int y = 0 ; y < 10 ; y++ ) {
f[x][y]->isOpen = NO;
f[x][y]->display = 0; //Going to make a search function for finding Number of mines next to it
int random = arc4random()%10;
if (random < 2) {
f[x][y]->isMine = YES;
} else {
f[x][y]->isMine = NO;
}
}
}
所以我在for循环的第一行得到了错误 F [X] [Y] - &GT; ....
我在这里做错了什么?
/编辑
这是我宣布我的f
的方式struct feild *f[10][10];
struct feild{
bool isOpen;
bool isMine;
int display;
}
答案 0 :(得分:1)
您没有为f分配任何空格,因此f[x][y]
只会包含垃圾内存,然后->isOpen = NO
访问权限就会爆炸。
你需要做类似
的事情for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
f[i][j] = malloc(sizeof(struct feild));
}
}
在您的代码之前。