5 / 5 / 1
Регистрация: 20.11.2012
Сообщений: 50
|
|||||||||||
1 | |||||||||||
fread с непонятной ошибкой21.11.2012, 20:16. Показов 2761. Ответов 41
Метки нет (Все метки)
Вот фрагмент кода, который вызывает ошибку:
Добавлено через 1 минуту Вдогонку:
0
|
21.11.2012, 20:16 | |
Ответы с готовыми решениями:
41
Приложение вылетает с непонятной ошибкой Ноутбук имеет склонность к лагам и открытию блокнота с непонятной ошибкой, картинки часто открывает как "черный квадрат" Ошибка Warning: fread() [function.fread]: Length parameter must be greater than 0 Решение непонятной задачи |
5 / 5 / 1
Регистрация: 20.11.2012
Сообщений: 50
|
||||||
21.11.2012, 20:38 [ТС] | 3 | |||||
Не вопрос. Но если я пишу
0
|
5 / 5 / 1
Регистрация: 20.11.2012
Сообщений: 50
|
||||||
21.11.2012, 20:50 [ТС] | 5 | |||||
Извините за тупизм, но как? Вот я объявил:
0
|
5 / 5 / 1
Регистрация: 20.11.2012
Сообщений: 50
|
|
21.11.2012, 20:57 [ТС] | 8 |
Не могу! Тогда компилятор не пропускает: "town_square: нет подходящего конструктора по умолчанию"
Ну что за язык? Как ни напиши, отовсюду палки в колеса... Добавлено через 1 минуту Да читал, но толку? Я имел в виду, что память под сам указатель как таковой, уже выделена. А вот под структуру, на которую он указывает... увы-с.
0
|
5 / 5 / 1
Регистрация: 20.11.2012
Сообщений: 50
|
|
21.11.2012, 21:01 [ТС] | 10 |
Я грешным делом считал, что это происходит автоматически при первом же обращении к данной области памяти, ан нет...
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
21.11.2012, 21:05 | 11 |
Вообще, сам подход бинарного чтения из файла в память (или в память под объектом) неправильный. Читать нужно в поля структуры(объекта). Если нет конструктора по умолчанию, то создавайте объект с помощью конструктора с параметрами, и читайте в поля объекта.
1
|
5 / 5 / 1
Регистрация: 20.11.2012
Сообщений: 50
|
|||||||||||
21.11.2012, 21:10 [ТС] | 12 | ||||||||||
Нет, у меня, наверное, терпения не хватит... Пишу, инициализирую заодно:
Где он увидел указатель? ГДЕ?! Я, блин, не знаю, ну помогите же! Что мне делать?! Что ему нужно, в конце концов?! Добавлено через 1 минуту Т.е. Вы имеете в виду, что в C++ прочитать в структуру из типизированного файла невозможно? Типо надо считывать сначала в какой-то монолитный бестиповый блок, а потом уже на месте это все разруливать? Добавлено через 1 минуту Ну вот же, вот же он, конструктор:
0
|
5 / 5 / 1
Регистрация: 20.11.2012
Сообщений: 50
|
|
21.11.2012, 21:12 [ТС] | 14 |
Так ведь нет же там звездочки, нет! Объявлена структура, а не указатель на нее.
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
21.11.2012, 21:17 | 15 |
Как раз не нужно считывать в "монолитный бестиповый блок". Нужно читать в именованные поля структуры.
Добавлено через 2 минуты Где нет звёздочки? Вы выделяете память под структуру. Адрес этой памяти помещается в указатель town.
1
|
5 / 5 / 1
Регистрация: 20.11.2012
Сообщений: 50
|
|
21.11.2012, 21:20 [ТС] | 16 |
Хорошо. Тогда Ваш фрагмент кода на сей случай (с учетом того, что двое из полей сами по себе являются структурами)? Я бы мог попытаться это реализовать, но боюсь, что опять столкнусь с чем-нибудь аномальным и снова буду занимать Ваше время тупыми вопросами...
Добавлено через 1 минуту Простите, но я же по ходу обсуждения отказался от указателя и объявил структуру, а не указатель на нее! Я убрал звездочку.
0
|
5 / 5 / 1
Регистрация: 20.11.2012
Сообщений: 50
|
||||||
21.11.2012, 21:31 [ТС] | 18 | |||||
Убрал. Написал так:
Когда там был указатель, не ругался, но мне посоветовали считывать напрямую в структуру - что теперь?
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||||||||||||||||
21.11.2012, 21:32 | 19 | |||||||||||||||
Вот это неправильно написано:
1
|
5 / 5 / 1
Регистрация: 20.11.2012
Сообщений: 50
|
||||||
21.11.2012, 21:32 [ТС] | 20 | |||||
0
|
21.11.2012, 21:32 | |
21.11.2012, 21:32 | |
Помогаю со студенческими работами здесь
20
Исключение по непонятной причине BSOD по непонятной причине По непонятной причине виснет программа Значение непонятной части программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |