weixin_44800756
修比 朵啦
2019-03-19 17:14

为什么我的链表在运行时会卡死或者无法存取信息?

  • c语言

c语言中的链表出了些小问题,运行程序是会卡死

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include"struct.h"//专门存放结构体
void register_show();
void success_show();
void order_check_show();
void no_order_show(); //都为显示函数 无影响
int register_add(peo *a,peo *b)
{
    system("cls");
    register_show();
    int career;
    scanf("%d",&career);
    peo *pnew,*p;//想用链表
    pnew=(peo *)malloc(sizeof(peo));
    p=(peo *)malloc(sizeof(peo));
    scanf("%s",pnew->id);
    fflush(stdin);
    scanf("%s",pnew->name);
    fflush(stdin);
    if(a==NULL)
    {
        a=pnew;
    }
    else
    {
        p=a;
        while(p!=NULL)
        {
            if(strcmp(p->id,pnew->id)==0)
            {
                printf("此账号已经被注册!");
                return 0;
            }
            p=p->next;
        }
        p=pnew;
        pnew->next=NULL;
    }
    p=a;
    while(p!=NULL)
    {
        printf("%s",p->id);
        p=p->next;
    }
    free(p);
    free(pnew);
    system("cls");
    success_show();
    system("pause");
    return 1;
}
/*typedef struct people{
    char name[10];
    char id[10];
    struct people * next;
}peo; */
//结构体如上

我想用建立一个链表来存储我的人员信息,但是每次存完发现最多只有一个人员的信息(就是存了两个就会发现其中一个信息没了)。
so我就想输出出来看我保存的东西是不是有问题,结果现在发现这个程序就直接卡死了。(×_×)
这个就有意思了,凭我的直觉,一定是我的链表或定义出了问题,但是奈何我这个大萌新是真的找不到什么错误(好吧!其实是学业不精,链表里面的一些注意点没学会)叹气!
现在我只能求助于各位大神,希望大家能够帮我看看到底是出了什么问题,当然顺便再和我说说关于c语言的链表的知识就更好了(当然,我是绝对不敢要求各为大佬的,只是我的一个小小的请求)最后 拜托了 希望大佬们把我从害怕链表的日子里救出来吧!!!

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答