c - 两个结构体的指针指向彼此类型的结构体作为成员?

标签 c pointers struct

这个问题在这里已经有了答案:





Resolve circular typedef dependency?

(6 个回答)


去年关闭。




例如,

typedef struct { char * name; component ** components; } object;

typedef struct { vector3 pos, orient; object * obj; } component;
我已经按原样尝试过,可以预见的是,我收到一个错误,即第一个包含指向“组件”指针的指针,编译器尚无法识别该指针。有没有解决的办法?

最佳答案

为了满足第一个结构中的指针声明,您需要对第二个结构进行前向声明:

struct component; // This says there is a struct named component somewhere in the code

typedef struct { char * name; struct component ** components; } object;

struct component { vector3 pos, orient; object * obj; };

关于c - 两个结构体的指针指向彼此类型的结构体作为成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62618887/

相关文章:

mysql - 为什么在 C 结构中分配字段时我会得到垃圾字符?

java - 如何创建 "X"模式?

c - fwrite 没有在缓冲区中发送我想要的内容

C++ 限制泛型中的类型(和指针问题)

c - 使用文件描述符使用 mmap 共享结构数组

c - qsort在c中动态创建数组

c - 使用malloc后,程序突然要求输入

c++ - 声明为 Node *&ptr = root->mRight 的变量

c - 指针没有取新值

struct - Rust struct : borrowing, 生命周期内的结构,泛型类型和更多的完全困惑