C++编译连接都通过了,可是运行时却莫名其妙终止了~

来源:百度知道 编辑:UC知道 时间:2024/06/17 02:25:15
我编了一个旅客订机票信息链表类,结点中有一个数据成员是旅客的座位号,其中有一个插入新结点的函数,即为新订票的旅客分配座位,因为有旅客会退票,所以我的这个函数是这样做的:
void customer_info_list::insert_node(char nam[],char id[])//订票时插入新的旅客登记信息结点函数
{customer *p,*q,*r;
p=head->next;
q=head;
while(p!=NULL)
{if(p->chair_num!=q->chair_num+1)break;
q=p;
p=p->next;
}
r=CreateNode(nam,id,q->chair_num+1);
r->next=p;
q->next=r;
cout<<"座号:"<<r->chair_num<<endl;
}
但是运行时会终止,进行调试时它给出了这样的回答:
存入旅客登记表.exe 中的 0x0040219f 处未处理的异常: 0xC0000005: 读取位置 0xddddde09 时发生访问冲突
我想请问一下这是什么问题,应该怎样修改.快要验收了哈,十万火急啊,请各位高手帮帮忙哈~
想问一下怎么调整指针移动啊?

是逻辑问题,

你的指针 指到了非法的区域。

调试下你的指针移动吧。

----------------------------------------------------------
这个需要结合你的程序调试。在Debug模式下 看究竟是哪个指针错了。
然后再反推……

说明你的程序在设计的时候有错误
编译只能说明你的语法没有问题