2

私はこれに不慣れで、マインスイーパのiPhoneアプリを作ろうとしています

構造体の2行2列の行列である地雷フィールドをリセットするためにIBButtonを使用しました

- (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]->...の最初の行でエラーが発生します。

私はここで何を間違えましたか?

/編集

これは私が私のfを宣言した方法です

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

1 に答える 1

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));
    }
 }

コードの前に。

于 2013-02-19T00:11:37.213 に答える