Форум программистов, компьютерный форум CyberForum.ru

Запись в файл структур(с указателем) - C++

Восстановить пароль Регистрация
 
TGrey[WoLf]
 Аватар для TGrey[WoLf]
39 / 39 / 1
Регистрация: 14.09.2008
Сообщений: 685
10.10.2010, 12:55     Запись в файл структур(с указателем) #1
Добрый день, подскажите, как корректно записать и прочитать в файл структуру, если она содержит указатель на другую струкруту?
C++
1
2
3
4
5
6
7
8
9
10
11
struct two
{
    int c;
};
 
struct one
{
    int a;
    int b;
    two *c;
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2010, 12:55     Запись в файл структур(с указателем)
Посмотрите здесь:

Считывание и запись структур в бинарный файл C++
C++ Запись структур в файл
C++ запись массива структур в файл
Запись/чтение массива структур в бинарный файл C++
Запись классов, структур в файл C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,898
Завершенные тесты: 1
10.10.2010, 13:35     Запись в файл структур(с указателем) #2
Правильным будет не записывать указатели в файл. Наиболее очевидный выход - использовать вместо прямых указателей некоторые абсолютные ключи, которые не зависят от расположения объектов в памяти (например, индекс в массиве). В дальнейшем можно либо так и пользоваться этими ключами , либо при загрузке преобразовывать ключ в адрес.
TGrey[WoLf]
 Аватар для TGrey[WoLf]
39 / 39 / 1
Регистрация: 14.09.2008
Сообщений: 685
10.10.2010, 13:42  [ТС]     Запись в файл структур(с указателем) #3
Мне нужны будут более сложные структуры. Видимо придется писать Общую структуру, затем вложенную и так и читать.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
11.10.2010, 05:04     Запись в файл структур(с указателем) #4
перед записью в файл можно эту структуру перегнать в сплошную
чтение тоже в сплошную, а потом перегнать из сплошной в исходную
Yandex
Объявления
11.10.2010, 05:04     Запись в файл структур(с указателем)
Ответ Создать тему
Опции темы

Текущее время: 16:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru