我有类型结构的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);