注册 登录
编程论坛 数据结构与算法

求大神,这个程序最后多输出了一次,想了很久也没想出来[em06]请问如何改呀

C1830365552 发布于 2013-04-11 15:51, 639 次点击
#include<iostream>
using namespace std;
typedef int Elem;
typedef struct aaaa
{
    Elem data;
    struct aaaa *next;
}lian;
void main()
{

    lian *head,*s,*p;
    int x;
    head=(lian*)malloc(sizeof(lian));
    p=head;
    while(x!=0)
    {
        cin>>x;
        s=(lian*)malloc(sizeof(lian));
        s->data=x;
        p->next=s;
        p=s;
   
    }
    head=head->next;
    free(p);
    while(head->next!=NULL)
    {
          cout<<head->data<<endl;
               head=head->next;
   
    }
   
}
4 回复
#2
yuccn2013-04-11 19:14
(lian*)malloc(sizeof(lian)); 出来后,next 没有至为空,

到你输出到适合,野指针使用,不崩溃是好的咯
#3
myracle2013-04-11 21:37
你把最后一个指针设为NULL(p->next=NULL),去掉free(p)。
#4
C18303655522013-04-15 22:38
回复 2楼 yuccn
哦,多谢大神
#5
C18303655522013-04-15 22:46
回复 3楼 myracle
谢了
1