我有一个结构和这些结构的二维数组:
typedef struct {
char exit_n;
char exit_s;
char exit_w;
char exit_e;
} room;
room map[MAP_WIDTH][MAP_HEIGHT];
我需要这些结构的指针数组。下面的代码编译,但我没有得到想要的结果。有什么帮助吗?这让我真的很困惑,任何解释将不胜感激
room *rooms;
rooms = (room*)malloc(sizeof(room*) * ROOM_NUM);
[..]
rooms[n] = map[room_x][room_y];
[..]
最佳答案
其实我觉得你想要
room** rooms;
rooms = (room**)malloc(sizeof(room*) * ROOM_NUM);
[..]
rooms[n] = &map[room_x][room_y];
这为您提供了一系列指向您房间的指针。
关于C:指向结构数组的动态指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2024448/