首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

郁闷啊又出有关问题了,帮帮忙

2012-02-22 
郁闷啊~~~又出问题了,帮帮忙#includestdio.h#includemalloc.hstructCar{intIdstructCar*NextCar}st

郁闷啊~~~又出问题了,帮帮忙
#include   <stdio.h>
#include   <malloc.h>

struct   Car
{
int   Id;
struct   Car   *NextCar;
};

struct   Car   *pCar=NULL;

struct   Car   *Create()
{
while(1)
{
struct   Car   *pfC=(struct   Car*)malloc(sizeof(struct   Car));
printf( "请输入汽车编号:\t ");
scanf( "%d ",&(pfC-> Id));
if(pfC-> Id==0)
{
break;
}
else
{
pfC-> NextCar=pCar-> NextCar;
pCar-> NextCar=pfC;
}
printf( "\n ");
/*free(pfC);     */
}
return   pCar;
};

void   ShowList(struct   Car   *pCar)
{
while(pCar-> NextCar!=NULL)
{
pCar=pCar-> NextCar;
printf( "汽车编号:\t%d\n ",pCar-> Id);

}
}

void   freelist(struct   Car*   head)
{
while(head)
{
struct   Car*   temp=head;
head=head-> NextCar;
free(temp);
}
}
int   main()
{
ShowList(Create());
freelist(pCar);
//getch();
return   0;
}

程序在TC2.0里面运行一切正常,可是在VC++2005里面运行却出错~~~那位大虾帮我看看啊,我很感激啊,已经搞了2天了555……

[解决办法]
哦,没检查头指针为空的情况,这样:

void ShowList(struct Car *pCar)
{
if (pCar!=NULL) printf( "汽车编号:\t%d\n ",pCar-> Id); //////头节点检查。
else retuen;
while(pCar-> NextCar!=NULL)
{
pCar=pCar-> NextCar;
printf( "汽车编号:\t%d\n ",pCar-> Id);
}
}

热点排行