gpt4 book ai didi

c - 带标题的单链表 - 错误

转载 作者:行者123 更新时间:2023-11-30 20:27:28 25 4
gpt4 key购买 nike

我正在尝试使用带头节点的链表来实现队列。该程序正在编译,但出现运行时错误。你能建议我应该改变什么吗?

显示功能良好。

#include <stdio.h>
#include <stdlib.h>
#define MALLOC(p,n,type) \
p=(type*)malloc(n*sizeof(type)); \

struct node
{
int info;
struct node *link;
};
typedef struct node *NODE;

NODE insert_rear(int item,NODE head)
{

NODE temp;
MALLOC(temp,1,struct node);
temp->info=item;
temp->link=NULL;
if(head==NULL)
{
head->link=temp;
return head;

}
NODE cur;

while(cur->link!=NULL)
{
cur=cur->link;
}
cur->link=temp;

return head;
}

NODE delete_front(NODE head)
{
if(head==NULL)
{
printf("Empty");
return head;

}
NODE temp,first;
first=head->link;
head->link=first->link;
printf("Item deleted is %d",first->info);
free(first);


return head;
}

最佳答案

这句话对你来说有意义吗?

if(head==NULL)
{
head->link=temp;

换句话来说,如果 head 为 NULL,则继续取消引用已知无效指针。
当然你会遇到段错误!

<小时/>

PS
我通过编写 main 函数发现了这一点,最重要的是,在调试器中跟踪代码。
您必须在调试器中跟踪您的代码。

我使用的main:

int main ()
{
NODE head = NULL;
head = insert_rear(3, head); // <= Breakpoint here. Step Into

getchar();
return 0;
}

关于c - 带标题的单链表 - 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19568547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com