问题描述
解决方案
next和prece指针的写法并没有错
感觉是你的fread有问题,应该是fread((&p1, sizeof(Doctor), 1, fp)) != EOF
你sizeof一个指针,永远是4
解决方案二:
1.首先fread的用法有问题吧,fread一般就读取字符串,你那个Doctor的结构是什么样的,也是需要看的
2.fread((&p1, sizeof(Doctor), 1, fp)) != EOF
这句话要改成.fread((p1, sizeof(Doctor), 1, fp)) != EOF
你试试看
解决方案三:
一个c++读取.ini文件问题
解决方案四:
问题应该出在fread((p1, sizeof(Doctor), 1, fp)) != EOF和p2=p1,你txt文件中一个数据项大小应该等于sizeof(Doctor).
解决方案五:
不知道 Doctor 结构的定义是怎样的,除了 next 成员外应该还有专门存储数据的成员(如 data),所以应使用 fread(&(p1->data),sizeof(p1->data),1,fp) 的方式读取数据。
而使用 fread(&p1,sizeof(p1),1,fp) 的方式读取数据,实际是将数据读入了 p1 指针之中,导致 p1 不再指向原来的 new Doctor 对象,所以再次访问 p1 所指向的内存时导致内存访问异常。
时间: 2024-09-27 19:15:38