C语言 带有标题的单向链表 - 错误



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

显示功能正常。

#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,请继续并取消引用已知的无效指针。
当然,你会得到一个赛格错误!



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

我使用main

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

相关内容

  • 没有找到相关文章

最新更新