![]() |
|
Модераторы: bsa |
![]()
|
|
| Sturmvogel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 14.8.2010 Репутация: нет Всего: нет |
Добрый день.
Возникла такая проблема: При попытку считать структуру из ранее созданного файла возникает ошибка чтения. При этом при проходе отладчиком ошибка отлавливается и выводится сообщение, а при запуску exe через консоль программа рушится. ОС: Windows 7 IDE: NetBeans 6.9+mingw
|
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
fileData содержит указатель.
проверь результат sizeof(fileData) для подобных операций, правильнее, использовать сериализацию. смотри boost.serialization |
|||
|
||||
| Sturmvogel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 14.8.2010 Репутация: нет Всего: нет |
Результат sizeof(data) равен 8, и, как я полагаю, это реальный размер структуры.
Да и к тому же подобных примеров в интернете довольно много, и довольно странно, что у меня это не работает:( |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
ага. только вот вы скажите, как вы предполагаете, то, на что указывает указатель, само должно в файл записаться? |
|||
|
||||
| Sturmvogel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 14.8.2010 Репутация: нет Всего: нет |
Что-то я не понял. Ведь, как я понимаю, функция fwrite должна записать структуру, на которую ссылается указатель. Так в чём здесь ошибка???? |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
||||
|
||||
| Sturmvogel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 14.8.2010 Репутация: нет Всего: нет |
Ага. Но тогда как в таком случае записать структуру, в которой содержатся и указатели и переменные?
|
|||
|
||||
| boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 20 Всего: 110 |
записывать так:
читать так:
только не забывай память освобождать. |
||||
|
|||||
| Sturmvogel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 14.8.2010 Репутация: нет Всего: нет |
Огромное спасибо, всё заработало!
Жаль что нет возможности записать такую структуру целиком. |
|||
|
||||
| Dem_max |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
Можно, храни в структуре не указатели, а
тады и проблем не будет с чтением и записью в файл. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
||||
|
|||||
| Sturmvogel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 14.8.2010 Репутация: нет Всего: нет |
Ну про этот вариант я тоже думал, но в моём случае всё таки удобнее по частям обрабатывать структуру, т.к. в последствии придётся очень часто преобразованиями типов пользоваться, а это не так удобно да и менее надёжно...
Это сообщение отредактировал(а) Sturmvogel - 15.8.2010, 15:55 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |