在自引用结构上使用sizeof()

时间:2017-04-08 17:33:30

标签: c struct

我有一个像这样定义的全局双链表结构:

res.render('listall', {
  allTodos: todos
})

如果我尝试使用struct list { struct list *next; struct list *prev; }; 初始化结构列表(在同一文件中),我会得到sizeof(struct list)。在这种情况下,为什么invalid application of 'sizeof' to an incomplete type 'struct list'被视为不完整类型?结构只有2个指针,其大小可以在编译时计算。

1 个答案:

答案 0 :(得分:1)

由于你没有向我们展示Minimal, Complete, and Verifiable Example我只能猜测,但我猜你没有包含定义结构的头文件,只有前向声明。

该前向声明仅告诉编译器结构存在,但没有说明其成员或结构的 size 。为此,您需要完整的定义。