【发布时间】:2018-04-09 03:04:29
【问题描述】:
在我的 c 程序中,我创建了一个单链表,我们必须使用 prev 节点插入一个节点,我在 main() 函数中收到此错误:
取消指向不完整类型“结构节点”的指针
我不知道为什么会出现这个错误。
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;
}
【问题讨论】:
-
你在哪里定义
ListNode和struct Node? -
请提供一个构建的例子。
ListNode的定义在哪里? -
struct Node *next;-->struct _Node *next; -
对不起,我添加了 ListNode 的结构
-
您已经声明了
struct Node *next;,但没有在任何地方定义struct Node。
标签: c