C:指向结构数组的动态指针数组

标签 c

我有一个结构和这些结构的二维数组:

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/

相关文章:

字符c[] ="Albus"; printf ("%c",c);

c - 在 OpenSSL 中使用 HMAC 与 EVP 函数

c - 如何创建一个从 99% 倒计时到 0% 每秒减少 1% 的计时器

c - 在 C 中使用管道进行父子 IPC 会使程序阻塞

c - 从文件中读取字符串到C中动态分配的数组

c - 用于修改正在运行的 C 程序的行为的脚本

c - openmp的性能

c - 如果我使用共享库,如何在 Arduino 中构建和上传代码?

java - 如何将 C HashMap 转换为 Java

c - C 中的 srand 函数