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