Я не эксперт на С++, но в прошлом я делал сериализацию несколько раз. К сожалению, на этот раз я пытаюсь сериализовать класс, содержащий std::string, который, как я понимаю, в значительной степени похож на сериализацию указателя.
Я могу записать класс в файл и снова прочитать его. Все поля int прекрасны, но поле std::string дает ошибку "адрес за пределами границ", по-видимому, потому, что указывает на данные, которые больше не существуют.
Существует ли стандартное обходное решение? Я не хочу возвращаться к массивам char, но, по крайней мере, я знаю, что они работают в этой ситуации. Я могу предоставить код, если это необходимо, но я надеюсь, что я хорошо объяснил свою проблему.
Я сериализую, отбрасывая класс в char * и записывая его в файл с файлом fstream. Чтение, конечно, только наоборот.