Ryan_Jielong 2019-12-20 21:59 采纳率: 0%
浏览 596

请问一下,为什么这两段程序会出现访问冲突?

void Linklist::save_stu_info()
{
    string class_name;
    string class_name_suffix;
    Node *pt;
    pt = pHead;
    cout << "请输入保存班级名称:";
    cin >> class_name;
    class_name_suffix = class_name + ".dat";
    ofstream outfile(class_name_suffix, ios::binary);
    if (!outfile)
    {
        cerr << "open error!" << endl;
        abort();
    }
    for (int i = 0; i < count; i++)
    {
        outfile.write((char *)pt, sizeof(Node));
        pt = pt->pNext;
    }
    cout << "保存成功!" << endl;
    outfile.close();
}
void Linklist::load_stu_info()
{
    string class_name;
    string class_name_suffix;
    Node *pt;
    pt = pHead;
    cout << "请输入读取班级名称:";
    cin >> class_name;
    class_name_suffix = class_name + ".dat";
    ifstream infile(class_name_suffix, ios::binary);
    if (!infile)
    {
        cerr << "open error!" << endl;
        abort();
    }
    cout << "请输入该班学生人数:" << endl;
    cin >> count;
    for (int i = 0; i < count; i++)
    {
        infile.read((char *)pt, sizeof(Node));
        pt = pt->pNext;
    }
    cout << "读取成功!" << endl;
    infile.close();
}
```第一个函数是我用来保存链表的各个节点的指针到一个dat文件中,第二个函数是把dat文件中的指针读取出来,但是当我运行就会报错
0x659D4B89 (vcruntime140d.dll)处(位于 studentmanage.exe 中)引发的异常: 0xC0000005: 写入位置 0x00546448 时发生访问冲突。
  • 写回答

1条回答 默认 最新

  • threenewbee 2019-12-20 22:03
    关注

    调试下, pHead是否是合法的指针,初始化了没有。
    以及pt = pt->pNext; 这里pNext都是合法的指针么

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog