小编Rem*_*rtz的帖子

C++ - 分段故障读取二进制文件

我遇到了一个问题,当我尝试读取 char* professeur二进制文件时它失败了,在read()函数中给我一个分段错误.奇怪的是,对于load其他类中的所有其他函数来说,读取char*成员的工作正常但是对于这一个,即使professeur在我得到一个seg错误中正确写入.

所以这是代码:

Cours.h

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>

using namespace std;

#include "Liste.h"
#include "Event.h"
#include "Professeur.h"

class Cours: public Event
{
    private:
        char* professeur;
        Liste<int> groupes;
    public:
        void save(ofstream&) const;
        void load(ifstream&);
};
Run Code Online (Sandbox Code Playgroud)

Cours.cpp

void Cours::save(ofstream& o) const
{
    int n=strlen(professeur);
    char buff[60], *buff2;

    o.write((char *)&n, sizeof(int));
    strcpy(buff, getProfesseur());
    o.write(buff, n+1);

    groupes.save(o);
    Event::save(o);
}

void Cours::load(ifstream& i)
{
    int n;
    char buff[60];

    i.read((char *)&n, sizeof(int)); …
Run Code Online (Sandbox Code Playgroud)

c++ file

5
推荐指数
1
解决办法
666
查看次数

标签 统计

c++ ×1

file ×1