C++中文件读取链表的问题

ChainList<Book>::block*p1=cb->gethead();ChainList<Book>::block*p3;ChainList<User>::bl... ChainList<Book>::block *p1=cb->gethead();
ChainList<Book>::block *p3;
ChainList<User>::block *p2=cu->gethead();
ChainList<User>::block *p4;
ChainList<Book>::block a[10],b,*p=&b;
int i=0;
p1=p1->next;
p2=p2->next;

while(p1->next!=0 && !bookFile.eof())
{
p3=p1->next;
bookFile.read((char*)p1,sizeof(ChainList<Book>::block));

p1->next=p3;
p1=p1->next;
}
while(p2->next!=0 && !userFile.eof())
{
p4=p2->next;

p2->next=p4;
p2=p2->next;
}
注:ChainList 是个模板类 Book User 是两个类 block是个内嵌的结构体

这段有问题运行后程序会崩溃 我把read那两条注释了 或者建立block的数组进行read就没事了 我写的哪有问题????
第二个while里原本也应该有和上边类似的read
展开
 我来答
冯天威
2014-03-06
知道答主
回答量:33
采纳率:0%
帮助的人:11.7万
展开全部
判断条件由判断p1->next,改为判断p1是否为null;下一个循环建议相似。从程序无法看出你如何确认p1自身不会为空的
v风度v
2014-03-06 · TA获得超过119个赞
知道小有建树答主
回答量:102
采纳率:100%
帮助的人:89.8万
展开全部
可能是链表中数据指针没有正常初始化,检查一下每步运行指针地址是否正确的变化;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式