Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C错误:取消引用指向不完整类型链表的指针_C - Fatal编程技术网

C错误:取消引用指向不完整类型链表的指针

C错误:取消引用指向不完整类型链表的指针,c,C,在我的c程序中,我创建了一个单链表,其中我们必须使用prev节点插入一个节点,我在我的main()函数中得到了这个错误: 取消引用指向不完整类型“struct Node”的指针 我不知道它为什么会犯这样的错误 while((temp->next!=NULL)和&(temp->next->data下一步->数据下一步; } temp->data=randomNumData; head=插入节点(临时、随机numdata); } 印刷品清单(标题); } //使用虚拟头节点返回新列表的头 ListN

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

取消引用指向不完整类型“struct Node”的指针

我不知道它为什么会犯这样的错误

while((temp->next!=NULL)和&(temp->next->data
--此处出错

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;
}
typedef结构节点
{       
int数据;
结构节点*下一步;
}列表节点;
ListNode*newList();
ListNode*insertNode(ListNode*prev,int数据);
int main()
{
ListNode*head=newList();
int-randomNumData;
ListNode*temp=头部;
int i;
对于(i=0;i<11;i++)
{
randomNumData=random()%1001;
而((临时->下一步!=NULL)&&(临时->下一步->数据下一步;
}
temp->data=randomNumData;
head=插入节点(临时、随机numdata);
}
印刷品清单(标题);
}
//使用虚拟头节点返回新列表的头
ListNode*newList()
{
ListNode*头;
head=malloc(sizeof(ListNode));
if(head==NULL)
{
printf(“错误”);
出口(1);
}
head->next=NULL;
回流头;
}
ListNode*insertNode(ListNode*prev,int数据)
{
ListNode*temp=prev;
上一个->下一个=临时->下一个;
临时->下一步->数据=数据;
返回温度;
}

看起来您没有名为Node的结构。从其他文件导入它或只是实现它。C很好,但到目前为止它还不是一个魔术师。

看起来你没有一个名为Node的结构。从其他文件导入它或只是实现它。C很好,但到目前为止它还不是一个魔术师。

在声明下一步时缺少下划线

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

声明下一步时缺少下划线

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

您在何处定义
ListNode
struct Node
?请提供一个生成的示例。其中是
ListNode
struct Node*next的定义-->
结构节点*下一步抱歉,我为ListNodey添加了结构您已经声明了
结构节点*next
但是没有在任何地方定义
结构节点
。您在哪里定义
列表节点
结构节点
?请提供一个生成的示例。其中是
ListNode
struct Node*next的定义-->
结构节点*下一步抱歉,我为ListNodey添加了结构您已经声明了
结构节点*next但在任何地方都没有定义
结构节点