我有一个全局双向链表结构,定义如下:
struct list {
struct list *next;
struct list *prev;
};
如果我尝试使用 sizeof(struct list)
初始化结构列表(在同一文件中(,我会得到invalid application of 'sizeof' to an incomplete type 'struct list'
.为什么在这种情况下struct list
会被视为不完整的类型?该结构只有 2 个指针,其大小可以在编译时计算。
由于您没有向我们展示最小、完整和可验证的示例,我只能猜测,但我猜您不包括定义结构的头文件,只有一个前向声明。
该前向声明仅告知编译器该结构存在,但不说明其成员或结构的大小。为此,您需要完整的定义。