touwangyi 2015-12-01 11:57 采纳率: 60%
浏览 1448

指针,简单链表输入输出,编译器

求解这个简单的链表,为什么会出错,而且运行过后编译器不能调试了求解
图片说明

 #include<stdio.h>
#include<stdlib.h>
struct node
{
    int date;
    node *next;
};

int main()
{
    int n;
    scanf("%d",&n);
    node *head,*q,*tail;
    node p;
    q = &p;
    int a;
    head = NULL;
    for(int i = 0;i<n;i++)
    {
        scanf("%d",&a);
        q->date = a;
        if(head==NULL)
        {
            head = q;
        }
        else
        {
            tail = q;
        }
        q = q->next;
        q = (node*)malloc(sizeof(node));
    }
    free(q);
    tail->next=NULL;
    node *t = head;
    while(t->next!=NULL)
    {
        printf("%d\n",t->date);
        t = t->next;
    }
    return 0;
}
  • 写回答

2条回答 默认 最新

  • ezLeo 2015-12-01 12:31
    关注

    首先定义的时候应该是struct node *q;以此类推
    然后你都没申请p的空间你就拿q指向
    其次在你赋值给链表节点的时候,p=p-》next恐怕不对,因为你下面语句申请的空间在堆上,你先让q指向NULL又让它指向堆是神马意思……

    我感觉你可以用一个中间变量来跑,比如用tmp=q-》next然后让q=temp这样赋值好一些

    评论

报告相同问题?

悬赏问题

  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败
  • ¥15 Centos7 / PETGEM
  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗