2013-02-18 3 views
2

Я новичок в этом, пытаясь сделать Приложение для iPhone тральщикEXC_BAD_ACCESS (код = 2 адреса = 0x0)

я использовал 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; 
      } 
     } 
    } 

так я получаю ошибки в самой первой строке из моих для цикла Р [х] [у] -> ....

, что я сделал не так?

/редактировать

Это, как я объявил мою п

struct feild *f[10][10]; 
struct feild{ 
    bool isOpen; 
    bool isMine; 
    int display; 
} 
+3

Вы не указали определение 'f', так что это довольно сложно сказать. –

+0

struct feild * f [10] [10]; struct feild { bool isOpen; bool isMine; int display; } – teemo

+0

Из любопытства, есть ли причина, по которой вы назвали ее «feild» вместо «поля»? –

ответ

1

Вы не выделили никакого пространства для е, так 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)); 
    } 
} 

перед кодом.

Смежные вопросы