我知道至少有10个问题已经存在,但他们都指出了我没有做的事情。
在头文件中,我有......
typedef struct Node {
struct Node *next;
struct pgmap page;
} Node;
typedef struct linkedlist {
struct Node *head_ptr;
struct Node *tail_ptr;
} LList;
在我的c档案中,我有
struct LList mainList;
int main()
{
struct LList *root;
root = &mainList;
root->head_ptr = NULL;
root->tail_ptr = NULL;
...
}
在root->我得到解除引用ptr ...错误。已经存在的所有线程都指出了人们不小心创建匿名结构的问题,例如
typedef struct{
int a;
}; monkey
而不是
typedef struct monkey{
int a;
}; monkey
所以我错过了什么????
答案 0 :(得分:10)
没有名为“struct LList
”的类型。代码“typedef struct linkedlist { ... } LList;
”会创建两个类型名称:一个是struct linkedlist
,另一个是LList
(没有“struct
”)。因此,您需要将“struct LList
”更改为“LList
。”