该代码在C中有什么问题



我有类型结构的2-D映射,我想初始化struct的条件元素至枚举未知。

汇编还可以,但是它给出了分割错误,我无法解决。

#include<stdio.h>
enum myenum {EXPLORED, UNKNOWN,}condition;
struct tile {
    int x;
    int y;
    int condition;
    };
struct tile* map[8][8];
void init_map() {
    for (int i = 0; i < 8; i++) {
        for (int j = 0; j < 8; j++) {
            map[i][j]->condition = UNKNOWN;
        }
        printf("n");
    }
}
void print_map() {
    for (int i = 0; i < 8; i++) {
        for (int j = 0; j < 8; j++) {
            printf("%d ", map[i][j]->condition);
        }
        printf("n");
    }
}
void main() {
init_map();
print_map();
}

任何帮助都非常感谢

程序中的错误是 map是一个从未分配给任何对象的指针数组。因此,

        map[i][j]->condition = UNKNOWN;

        printf("%d ", map[i][j]->condition);

导致不确定的行为。

目前尚不清楚为什么您需要一系列指针。您可以只使用一系列对象。

struct tile map[8][8]; // Drop the pointer

并使用

        map[i][j].condition = UNKNOWN;

        printf("%d ", map[i][j].condition);

相关内容

  • 没有找到相关文章

最新更新