C 错误 : dereferencing pointer to incomplete type linked list

标签 c

在我的 c 程序中,我创建了一个单链表,我们必须在其中使用 prev 节点插入一个节点,我在 main() 中收到此错误功能:

Dereferencing pointer to incomplete type ‘struct Node’

我不确定为什么会出现该错误。

while((temp->next != NULL) && (temp->next->data < randomNumData)) -- 这里有错误

typedef struct _Node
{       
        int data;
        struct Node *next;
} ListNode;

ListNode *newList();
ListNode *insertNode(ListNode *prev, int data);

int main()
{
        ListNode *head = newList();

        int randomNumData;
        ListNode *temp = head;
        int i;

        for(i = 0; i < 11; i++)
        {
                randomNumData = random()%1001;
                while((temp->next != NULL) && (temp->next->data < randomNumData))
                {
                        temp = temp->next;
                }
                temp->data = randomNumData;
                head = insertNode(temp, randomNumData);
        }

        printList(head);
}

// returning the head of a new list using dummy head node
ListNode *newList()
{
        ListNode *head;
        head = malloc(sizeof(ListNode));
        if(head == NULL)
        {
                printf("ERROR");
                exit(1);
        }

        head->next = NULL;
        return head;
}

ListNode *insertNode(ListNode *prev, int data)
{
        ListNode *temp = prev;
        prev->next = temp->next;
        temp->next->data = data;

        return temp;
}

最佳答案

你在声明 next 时缺少下划线。

typedef struct _Node
{       
    int data;
    struct _Node *next;
} ListNode;

关于C 错误 : dereferencing pointer to incomplete type linked list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46976208/

相关文章:

c++ - MSVC - 可执行文件构建正确但 DLL 不正确,缺少符号和冲突的依赖项 - SSCCE/Repro

c# - Autohotkey:以下键的键码是什么

c++ - 使用 C++ 创建 DLL 文件

c - 指针寻址行为

c++ - 我想一次将十六进制文件读入数组 4 个字节

c - 用C解析巨大的XML页面时如何解决 'returned null'

c - C 中 ' # ' 字符的右对齐

c - 如何在这种情况下检测新行

c - Linux 内核 : how to traverse physical pages in mem_map from user space using/dev/mem?

c - 我的数组中的偶数位置自动变成 0。你能修复我的代码吗?