注册 登录
编程论坛 C语言论坛

还是那个程序,为什么追加数据后,头指针会不明不白的丢失!?

小焦叔叔 发布于 2021-02-25 00:02, 1426 次点击
#include"STDIO.H"
#include"CONIO.H"
#include"STDLIB.H"
#include"DEF_TYPE.H"

struct tel_node *Add_Node(struct tel_node *head)
{
    struct tel_node *tail,*p_new;
    char name[20];
    char tel_code[11];
   
    system("cls");
    printf("姓名\t电话号码:");
    scanf("%s%s",name,tel_code);
    putch('\n');
    p_new=(struct tel_node *)malloc(sizeof(struct tel_node));
    strcpy(p_new->name,name);
    strcpy(p_new->tel_code,tel_code);
    p_new->next=NULL;
    if(head==NULL)
    {
        head=p_new;        
    }   
    else
    {
        tail=head;
        while(tail->next!=NULL)
        {
            tail=tail->next;
        }
        tail->next=p_new;   
    }
   
    return(head);
}


以前那个问题我解决了,那是因为结构体指针没有申请空间。现在另一个文件又有一个新的问题,就是,一旦输入了新的节点数据,头指针就会莫名其妙的丢失!新的链表总是从第二个节点开始。各位同学请帮帮忙,看看是什么问题?谢谢!!!!!!
2 回复
#2
星泪成寒2021-02-25 15:56
没看出有啥问题
#3
rjsp2021-02-25 16:31
问题肯定有的,比如 head=p_new 这一句,其中 head 是个临时对象,给它赋值并不能传回调用者那里。

代码不全,不知所云;问题不相干的代码太多,懒得看。
1