不死奇迹 2015-09-04 10:07 采纳率: 33.3%
浏览 2623

为什么输出一个空指针链表时if(pHead==NULL){cout《“”;}这句不能执行

#include
using namespace std;

typedef struct Node
{
int age;
struct Node* next;
}LIST;

LIST* CreatList()
{
int data=0;
LIST* Phead=NULL;
LIST* Pm=NULL;
LIST* Pcur=NULL;
Phead=(LIST*)malloc(sizeof(LIST));
Phead->age=0;
Phead->next=NULL;

cout<<"Enter your data of node (-1 quit):";
scanf("%d", &data);
Pcur=Phead;
while (data!=-1)
{

    Pm=(LIST*)malloc(sizeof(LIST));
    Pm->age=data;
    Pm->next=NULL;
    Pcur->next=Pm;
    Pcur=Pcur->next;
    cout<<"Enter your data of node (-1 quit):";
    scanf("%d", &data);
}
return Phead;

}

void ListOut(LIST* Phead)
{
LIST* p=NULL;

if(Phead==NULL)   //如果改为if(Phead->next==NULL)则cout执行,why?
{
    cout<<"List is NULL\n";
}
else
{
    p=Phead->next;
    while(p!=NULL)
    {
        cout<<p->age<<endl;
        p=p->next;
    }
}

}

void main()
{
LIST* p1=CreatList();
ListOut(p1);
system("pause");
}

  • 写回答

4条回答 默认 最新

  • my_us_er 2015-09-04 10:27
    关注

    在创建链表的时候,看你怎么输入,只要输入了非-1的数,则head不为空,如果只输入了一次-1,则head是空的。

    评论

报告相同问题?

悬赏问题

  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)
  • ¥15 comsol仿真压阻传感器