Dyikot
@Dyikot

Почему появляется такая ошибка?

Если убрать stream.read((char*)&student, sizeof(Student)) то ошибка исчезает, но что тут неправильно?
ifstream stream;
	Student student;
	stream.open(fileName);
	if (stream.is_open())
	{
		while (stream.read((char*)&student, sizeof(Student)))
		{

		}
	}
	stream.close();
	return student;
qB9IGGu.png
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
http://dilbert.com/strip/1998-08-24
что тут неправильно?

для однозначного ответа на этот вопрос не хватает определения типа Student.
Но судя по тому как всё падает, в Student есть не-POD поля, выделяющие и освобождающие память, например std::string или что-то типа того. Загружать их из файла просто читая записанное ранее содержимое памяти нельзя, потому что загруженные указатели будут ссылаться на невыделенную память, такие типы данных нужно по-честному сериализовывать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы