|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.06.2010, 12:26 | #1 |
a.k.a. Skull
Форумчанин
Регистрация: 17.11.2009
Сообщений: 963
|
Проблема с изменением значений в динамической структуре
Добрый день. Уже который день убиваю себе мозг, и не могу найти слабое место.
Код:
Проблема: не получается сохранить данные в Q^.sod. пробовал отладку клавишей F7, доходит до места обозначеного в коде "!!!", затем вылетает. при этом, если в процедуре, в разделе VAR(которого у меня нет, ибо незачем) объявить I:integer и читать в нее, то все получается. если в VAR'e объявить какое-нибудь W:PTree, то в него тоже нормально читает, а в мой злополучный Q не хочет ни при каких условиях, хотя он тоже объявлен через var, при объявлении процедуры. Пробовал урезать процедуру до простейшего Код:
Объясните пожалуйста, ЧТО тут может быть не так.
Все тривиальное просто
|
28.06.2010, 13:09 | #2 |
Форумчанин
Регистрация: 12.05.2010
Сообщений: 125
|
А какую ошибку выдает? Может файл не открыт?
|
28.06.2010, 13:25 | #3 |
a.k.a. Skull
Форумчанин
Регистрация: 17.11.2009
Сообщений: 963
|
я же говорю, в I читает, файл открыт. кароче, вот вся прога (ну не вся конечно, но та часть, которую я сейчас терзаю).
Код:
Все тривиальное просто
|
28.06.2010, 13:31 | #4 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Код:
Код:
Код:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
28.06.2010, 17:29 | #5 |
a.k.a. Skull
Форумчанин
Регистрация: 17.11.2009
Сообщений: 963
|
ну, с S:=nil я намудрил конечно, не отрицаю. однако нил я поставил уже после туевой хучи эксперимантов, пытался подтосовать под процедуру (хотя умом я понимаю, что он и так сразу нил).
и что каcается PTree и TTree - деревьев тут нет, просто такое обозначение мне привычнее, с тем же успехом мог назвать PKust и TKust или еще что-нибудь. вопрос в другом, почему я не могу изменять содержимое параметра, заданого через var (имеется ввиду Q)?
Все тривиальное просто
Последний раз редактировалось whatever; 28.06.2010 в 17:32. |
28.06.2010, 19:57 | #6 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Повторю вопрос на другом уровне. Указатели это только ссылка на данные. Где сами данные, которые вы пытаетесь изменить?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
28.06.2010, 20:52 | #7 |
a.k.a. Skull
Форумчанин
Регистрация: 17.11.2009
Сообщений: 963
|
Хм... Данные находятся в текстовике source.txt. По средствам
Код:
sod:integer объявлен в записи TTree. У меня возникают подозрения, что у нас наступает диалог глухонемых. Ладно, ставлю вопрос иначе: Почему так: Код:
Код:
Все тривиальное просто
|
29.06.2010, 07:07 | #8 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Код:
Теперь почему твой код работает? А потому что попадает на свободный участок памяти. А не работает, потому что в тот момент твой указатель тыкает куда-нибудь где место уже занято. И оба варианта неверные.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 29.06.2010 в 08:44. |
29.06.2010, 09:17 | #9 |
a.k.a. Skull
Форумчанин
Регистрация: 17.11.2009
Сообщений: 963
|
В общем, я согласен, что не прав. Но не могу понять, чем вам мой type не угодил? В яндексе, на запрос "дерево pascal" первая же ссылка выдает
Код:
Все тривиальное просто
|
29.06.2010, 09:20 | #10 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
В твоем случае new нужен при каждом считывании а не в самом начале. Цитата:
Как я сказал - ты не выделил для нее память при считывании, потому, как сказал Уткин "эта структура не существует"
I'm learning to live...
|
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
проблема с изменением формата даты при копировании из CSV формата в эксель | mars56 | Microsoft Office Excel | 4 | 16.03.2010 09:50 |
Проблема с вызовом динамической DLL | SkAndrew | Общие вопросы Delphi | 12 | 12.03.2010 07:59 |
Проблема выделения динамической памяти в С++ | oxygen90 | Помощь студентам | 3 | 14.09.2009 21:47 |
Проблема с изменением ориентации страницы в отчете | madmech | Общие вопросы Delphi | 0 | 22.05.2009 20:04 |
Паскаль: шейкерная сортировка на динамической структуре. | kotzebu | Фриланс | 1 | 01.05.2009 12:48 |