1

我知道至少已经有 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

那我错过了什么???

4

1 回答 1

10

没有称为“ struct LList”的类型。代码“ typedef struct linkedlist { ... } LList;”创建了两个类型名称:一个是struct linkedlist,另一个只是LList(没有“ struct”)。因此,您需要将“ struct LList”更改为“ LList。”

于 2013-10-21T22:44:46.177 回答