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

帮忙看看这个程序cout到main最后都可以成功执行,为什么还是会内存报错?该如何处理

2012-02-21 
帮忙看看这个程序cout到main最后都可以成功执行,为什么还是会内存报错?#include iostream.h#include st

帮忙看看这个程序cout到main最后都可以成功执行,为什么还是会内存报错?
#include <iostream.h>
#include <string.h>
#include <iomanip.h>
#include <stdlib.h>
#define   PlanNum   8
typedef   struct   QNode1                                       //以定票人员信息
{
                char   name[20];                   //姓名
                int   shuliang;                       //定票数量
                char   cangdeng;                     //票的仓等次  
                struct   QNode1   *next;
}QNode1,*QueuePtr1;                          
typedef   struct
{
QueuePtr1   cFront;
QueuePtr1   cRear;
}LinkQueue1;
//LinkQueue1   chengke;                             //头结点
//QNode1   *   cFront;                                   //队头指针
//QNode1   *   cRear;                                     //队尾指针

typedef   struct   QNode2                                       //等候候补的客户名单信息
{
                char   name[20];                     //姓名
                int   shuliang;                         //定票数量
                struct   QNode2   *next;
}QNode2,*QueuePtr2;                          
typedef   struct
{
QueuePtr2   hFront;
QueuePtr2   hRear;
}LinkQueue2;
//LinkQueue2   houbu;
//QNode2   *   hFront;
//QNode2   *   hRear;

typedef   struct
{
                char   end[5];                     //终点
                char   hNUM[8];                   //航班号
                char   pNUM[8];                   //飞机号
                char   time[7];                   //星期几  
                int   maxNum;                       //乘员定额  
                int   yupiaoliang;             //剩余票量  
LinkQueue1   chengke;       //以定票乘客
LinkQueue2   houbu;           //候补乘客



}InfoType;

typedef   struct                                                   //静态链表类型
{
                InfoType   hangban[PlanNum];         //静态链表,hangban[0]为头结点  
                int   length;                                         //当前表长  
}SLList;  
SLList   plan;

LinkQueue1   createList_c(LinkQueue1   def_chengke)
{
def_chengke.cFront=def_chengke.cRear=(QNode1   *)malloc(sizeof(QNode1   *));
def_chengke.cFront-> next=NULL;
return   def_chengke;
}

LinkQueue2   createList_h(LinkQueue2   def_houbu)
{
def_houbu.hFront=def_houbu.hRear=(QNode2   *)malloc(sizeof(QNode2   *));
def_houbu.hFront-> next=NULL;
return   def_houbu;
}

void   enQueue_c(LinkQueue1   en_chengke,char   name[],int   Num)
{
QueuePtr1   p=(QNode1   *)malloc(sizeof(QNode1   *));
strcpy(p-> name,name);
//p-> name=name;
p-> cangdeng= 'A ';
p-> shuliang=Num;
p-> next=NULL;
en_chengke.cRear-> next=p;
en_chengke.cRear=p;
}

void   enQueue_h(LinkQueue2   en_houbu,char   name[],int   Num)
{
QueuePtr2   p=(QNode2   *)malloc(sizeof(QNode2   *));
strcpy(p-> name,name);
p-> shuliang=Num;
p-> next=NULL;
en_houbu.hRear-> next=p;
en_houbu.hRear=p;
}


void   inithangban()                                           //初始化航班函数  
{
strcpy(plan.hangban[0].end, "北京 ");
        strcpy(plan.hangban[0].hNUM, "CA1554 ");
strcpy(plan.hangban[0].pNUM, "733 ");
strcpy(plan.hangban[0].time, "星期一 ");
plan.hangban[0].maxNum=100;
plan.hangban[0].yupiaoliang=20;
plan.hangban[0].chengke=createList_c(plan.hangban[0].chengke);
plan.hangban[0].houbu=createList_h(plan.hangban[0].houbu);

strcpy(plan.hangban[1].end, "广州 ");
        strcpy(plan.hangban[1].hNUM, "MU5341 ");
strcpy(plan.hangban[1].pNUM, "M90 ");
strcpy(plan.hangban[1].time, "星期天 ");
plan.hangban[1].maxNum=150;
plan.hangban[1].yupiaoliang=0;
plan.hangban[1].chengke=createList_c(plan.hangban[1].chengke);
plan.hangban[1].houbu=createList_h(plan.hangban[1].houbu);

strcpy(plan.hangban[2].end, "深圳 ");
        strcpy(plan.hangban[2].hNUM, "CA1554 ");
strcpy(plan.hangban[2].pNUM, "733 ");
strcpy(plan.hangban[2].time, "星期一 ");
plan.hangban[2].maxNum=100;
plan.hangban[2].yupiaoliang=10;
        plan.hangban[2].chengke=createList_c(plan.hangban[2].chengke);
plan.hangban[2].houbu=createList_h(plan.hangban[2].houbu);

strcpy(plan.hangban[3].end, "南京 ");
        strcpy(plan.hangban[3].hNUM, "CZ3869 ");
strcpy(plan.hangban[3].pNUM, "M90 ");
strcpy(plan.hangban[3].time, "星期四 ");
plan.hangban[3].maxNum=150;
plan.hangban[3].yupiaoliang=20;
plan.hangban[3].chengke=createList_c(plan.hangban[3].chengke);


plan.hangban[3].houbu=createList_h(plan.hangban[3].houbu);

strcpy(plan.hangban[4].end, "北京 ");
        strcpy(plan.hangban[4].hNUM, "HU1836 ");
strcpy(plan.hangban[4].pNUM, "738 ");
strcpy(plan.hangban[4].time, "星期五 ");
plan.hangban[4].maxNum=180;
plan.hangban[4].yupiaoliang=50;
plan.hangban[4].chengke=createList_c(plan.hangban[4].chengke);
plan.hangban[4].houbu=createList_h(plan.hangban[4].houbu);

strcpy(plan.hangban[5].end, "厦门 ");
        strcpy(plan.hangban[5].hNUM, "CZ3528 ");
strcpy(plan.hangban[5].pNUM, "CRJ ");
strcpy(plan.hangban[5].time, "星期二 ");
plan.hangban[5].maxNum=200;
plan.hangban[5].yupiaoliang=0;
plan.hangban[5].chengke=createList_c(plan.hangban[5].chengke);
plan.hangban[5].houbu=createList_h(plan.hangban[5].houbu);

strcpy(plan.hangban[6].end, "西安 ");
        strcpy(plan.hangban[6].hNUM, "MU4594 ");
strcpy(plan.hangban[6].pNUM, "328 ");
strcpy(plan.hangban[6].time, "星期三 ");
plan.hangban[6].maxNum=120;
plan.hangban[6].yupiaoliang=100;
plan.hangban[6].chengke=createList_c(plan.hangban[6].chengke);
plan.hangban[6].houbu=createList_h(plan.hangban[6].houbu);

strcpy(plan.hangban[7].end, "海口 ");
        strcpy(plan.hangban[7].hNUM, "SC7425 ");
strcpy(plan.hangban[7].pNUM, "DH4 ");
strcpy(plan.hangban[7].time, "星期一 ");
plan.hangban[7].maxNum=180;
plan.hangban[7].yupiaoliang=30;
plan.hangban[7].chengke=createList_c(plan.hangban[7].chengke);
plan.hangban[7].houbu=createList_h(plan.hangban[7].houbu);
}


[解决办法]
LZ的程序我单步执行了以下,输出结果了:

MU4594 西安 328 星期三 120 100
SC7425 海口 DH4 星期一 180 30
请输入要求查询航班的航班号以及所需定票的数量:
航班号为:CA1554

所需票的数量为:19
航班号 飞机号 时间 剩余票量
CA1554 733 星期一 20
余票量足够,正在为你办理定票手续
请输入你的姓名:
tangzheng
定票成功!
座位号为:
81hdo
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
dhfhe
dfegft
请按任意键继续. . .

[解决办法]
楼主,我帮你调试好了....
程序如下:
#include <iostream.h>
#include <string.h>
#include <iomanip.h>
#include <stdlib.h>

#define PlanNum 8

//预定票人员信息
typedef struct QNode1
{
char name[20]; //姓名
int shuliang; //定票数量
char cangdeng; //票的仓等次
struct QNode1 *next;
}QNode1,*QueuePtr1;

//队列一
typedef struct
{
QueuePtr1 cFront;
QueuePtr1 cRear;
}LinkQueue1;

//等候候补的客户名单信息
typedef struct QNode2
{
char name[20]; //姓名
int shuliang; //定票数量
struct QNode2 *next;
}QNode2,*QueuePtr2;

//队列二
typedef struct
{
QueuePtr2 hFront;
QueuePtr2 hRear;
}LinkQueue2;

//航班信息
typedef struct
{
char end[5]; //终点
char hNUM[8]; //航班号
char pNUM[8]; //飞机号
char time[7]; //星期几
int maxNum; //乘员定额
int yupiaoliang; //剩余票量
LinkQueue1 chengke; //已定票乘客


LinkQueue2 houbu; //候补乘客
}InfoType;

//静态链表类型
typedef struct
{
InfoType hangban[PlanNum]; //静态链表,hangban[0]为头结点
int length; //当前表长
}SLList;
//定义链表
SLList plan;
/////////////////////////////////////////////////
//
LinkQueue1 createList_c(LinkQueue1 def_chengke)
{
def_chengke.cFront = (QNode1 *)malloc(sizeof(QNode1));
def_chengke.cRear = (QNode1 *)malloc(sizeof(QNode1));
//def_chengke.cFront-> next = NULL;
def_chengke.cRear-> next = NULL;
return def_chengke;
}
/////////////////////////////////////////////
//
LinkQueue2 createList_h(LinkQueue2 def_houbu)
{
def_houbu.hFront = (QNode2 *)malloc(sizeof(QNode2));
def_houbu.hRear = (QNode2 *)malloc(sizeof(QNode2));
//def_houbu.hFront-> next = NULL;
def_houbu.hRear-> next = NULL;
return def_houbu;
}
//////////////////////////////////////////////
//
void enQueue_c(LinkQueue1 en_chengke,char *name,int Num)
{
//分配一个结点的空间
QueuePtr1 p=(QNode1 *)malloc(sizeof(QNode1));

if(!p)
exit(0);
//add data
strcpy(p-> name, name);
p-> cangdeng = 'A ';
p-> shuliang = Num;

p-> next = NULL;
en_chengke.cRear-> next = p; //////////
en_chengke.cRear = p;
//en_chengke.cRear-> next = NULL;
}
/////////////////////////////////////////////////////////
//
void enQueue_h(LinkQueue2 en_houbu,char name[],int Num)
{
QueuePtr2 p=(QNode2 *)malloc(sizeof(QNode2));
if(!p)
exit(0);
strcpy(p-> name, name);
p-> shuliang = Num;
p-> next = NULL;
en_houbu.hRear-> next = p;
en_houbu.hRear = p;
}
//////////////////////////////////////////////////////
//初始化航班函数
void inithangban()
{
strcpy(plan.hangban[0].end, "北京 ");
strcpy(plan.hangban[0].hNUM, "CA1554 ");
strcpy(plan.hangban[0].pNUM, "733 ");
strcpy(plan.hangban[0].time, "星期一 ");
plan.hangban[0].maxNum=100;
plan.hangban[0].yupiaoliang=20;
plan.hangban[0].chengke=createList_c(plan.hangban[0].chengke);
plan.hangban[0].houbu=createList_h(plan.hangban[0].houbu);

strcpy(plan.hangban[1].end, "广州 ");
strcpy(plan.hangban[1].hNUM, "MU5341 ");
strcpy(plan.hangban[1].pNUM, "M90 ");
strcpy(plan.hangban[1].time, "星期天 ");
plan.hangban[1].maxNum=150;
plan.hangban[1].yupiaoliang=0;
plan.hangban[1].chengke=createList_c(plan.hangban[1].chengke);
plan.hangban[1].houbu=createList_h(plan.hangban[1].houbu);

strcpy(plan.hangban[2].end, "深圳 ");
strcpy(plan.hangban[2].hNUM, "CA1554 ");
strcpy(plan.hangban[2].pNUM, "733 ");
strcpy(plan.hangban[2].time, "星期一 ");
plan.hangban[2].maxNum=100;
plan.hangban[2].yupiaoliang=10;
plan.hangban[2].chengke=createList_c(plan.hangban[2].chengke);
plan.hangban[2].houbu=createList_h(plan.hangban[2].houbu);

strcpy(plan.hangban[3].end, "南京 ");
strcpy(plan.hangban[3].hNUM, "CZ3869 ");
strcpy(plan.hangban[3].pNUM, "M90 ");
strcpy(plan.hangban[3].time, "星期四 ");
plan.hangban[3].maxNum=150;
plan.hangban[3].yupiaoliang=20;
plan.hangban[3].chengke=createList_c(plan.hangban[3].chengke);
plan.hangban[3].houbu=createList_h(plan.hangban[3].houbu);

strcpy(plan.hangban[4].end, "北京 ");
strcpy(plan.hangban[4].hNUM, "HU1836 ");


strcpy(plan.hangban[4].pNUM, "738 ");
strcpy(plan.hangban[4].time, "星期五 ");
plan.hangban[4].maxNum=180;
plan.hangban[4].yupiaoliang=50;
plan.hangban[4].chengke=createList_c(plan.hangban[4].chengke);
plan.hangban[4].houbu=createList_h(plan.hangban[4].houbu);

strcpy(plan.hangban[5].end, "厦门 ");
strcpy(plan.hangban[5].hNUM, "CZ3528 ");
strcpy(plan.hangban[5].pNUM, "CRJ ");
strcpy(plan.hangban[5].time, "星期二 ");
plan.hangban[5].maxNum=200;
plan.hangban[5].yupiaoliang=0;
plan.hangban[5].chengke=createList_c(plan.hangban[5].chengke);
plan.hangban[5].houbu=createList_h(plan.hangban[5].houbu);

strcpy(plan.hangban[6].end, "西安 ");
strcpy(plan.hangban[6].hNUM, "MU4594 ");
strcpy(plan.hangban[6].pNUM, "328 ");
strcpy(plan.hangban[6].time, "星期三 ");
plan.hangban[6].maxNum=120;
plan.hangban[6].yupiaoliang=100;
plan.hangban[6].chengke=createList_c(plan.hangban[6].chengke);
plan.hangban[6].houbu=createList_h(plan.hangban[6].houbu);

strcpy(plan.hangban[7].end, "海口 ");
strcpy(plan.hangban[7].hNUM, "SC7425 ");
strcpy(plan.hangban[7].pNUM, "DH4 ");
strcpy(plan.hangban[7].time, "星期一 ");
plan.hangban[7].maxNum=180;
plan.hangban[7].yupiaoliang=30;
plan.hangban[7].chengke=createList_c(plan.hangban[7].chengke);
plan.hangban[7].houbu=createList_h(plan.hangban[7].houbu);
}

热点排行