c - 取消引用指针的问题

标签 c pointers struct dereference

尝试为指针赋值时出现错误。

我定义了 2 个结构:

typedef struct {
    struct player *next; //pointers
    struct player *prev;
} player;

typedef struct {
    player onMe; //object
} field;

稍后在代码中,我创建了结构“玩家 p”的实例并尝试使用它: fields[][] 是一个包含字段类型结构的数组。

fields[p.x][p.y].onMe = *(p.next);
(*p.prev).next = &p.next;

在这些情况下,我得到“错误:解引用指向不完整类型的指针” 我也尝试了 (&p.next) 但结果相同。

fields[x][y].onMe.prev = (&p);

在这种情况下,我收到“警告:从不兼容的指针类型赋值 [默认启用]”

谁能告诉我我做错了什么?

最佳答案

您没有在任何地方声明 struct player,因此该结构的定义是不完整的。尝试

typedef struct player_s {
    struct player_s *prev;
    struct player_s *next;
} player;

关于c - 取消引用指针的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17512464/

相关文章:

c - 如何知道使用C、Linux、Socket的服务器的各个IP地址?

c++ - 在数组中存储结构 (C++)

c++ - 如何将结构内的所有内容设置为 0?

c - 表达式必须是指向完整对象类型的指针

c - 结构体中的结构体数组中的 int 数组

c - 在关闭的连接上写入不会立即生成 sigpipe

c - fclose 不可能的正确错误处理(根据联机帮助页)?

c - 在 C 中生成随机 bool 值的简单方法是什么?

c - 函数指针执行错误

c - 有限状态机中的数组、指针和指向函数的指针