|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.11.2015, 16:23 | #21 |
Пользователь
Регистрация: 11.11.2015
Сообщений: 20
|
Как р достигнет нила,если список кольцевой?
При прогоне программы,он сразу из нее выходит,не желая ничего удалять Последний раз редактировалось agrestid; 25.11.2015 в 16:51. |
25.11.2015, 16:53 | #22 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
а вот Вы правы!!!
А я нет! извините, конечно же, в случае кольцевого списка нужно проверять не nil, а событие, когда указатель укажет на голову! т.е. попробуйте очистку так: Код:
|
25.11.2015, 17:04 | #23 |
Пользователь
Регистрация: 11.11.2015
Сообщений: 20
|
А что будет с указателем,когда мы удалим ячейку памяти,на которую он указывает?
Лемент,на который указывает голова,мы же удалили Последний раз редактировалось Serge_Bliznykov; 25.11.2015 в 17:22. |
25.11.2015, 17:25 | #24 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ну, от того, что мы удалили элемент, значение указателя, который ссылался на эту область памяти, никак не изменится.
Разумеется, брать значение по ссылке из указателю, после того, как сделали ему dispose - не корректно. но, если Вы обратите внимание, я для этого и завёл вторую переменную, как раз по этой причине. мы в неё берём указатель на следующий элемент. освобождаем текущую область памяти и идём дальше. Короче, Вы проверили код (прошлись в отладчике) и он не работает? или почему этот вопрос возник? |
25.11.2015, 20:41 | #25 |
Пользователь
Регистрация: 11.11.2015
Сообщений: 20
|
Отлично,всё работает!!
|
25.11.2015, 23:07 | #26 |
Пользователь
Регистрация: 11.11.2015
Сообщений: 20
|
Код:
Почему? Последний раз редактировалось Stilet; 26.11.2015 в 09:43. |
26.11.2015, 00:12 | #27 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
зацикливание, потому что логическое условие составлено неверно.
у Вас написано следующее пока (фамилия не равна) ИЛИ (номер не равен) ИЛИ (следующий элемент не равен голове списка) выполнять переход на следующий элемент. очевидно, что если ЛЮБОЕ из условий выполняется, то будет переход. что это цикл должен найти? |
26.11.2015, 00:26 | #28 | |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Цитата:
|
|
26.11.2015, 00:32 | #29 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
мда.. Вы правы.
где мои глаза?!! там же AND но суть не меняется. логика нарушена. <условие_поиска_не_нашлось> ИЛИ <не последний элемент> допустим, <<условие_поиска_не_нашлось> выполнилось первая часть стала FALSE вопрос - цикл выполнится. и тут всё зависит от второй части, если нашлось и элемент не последний - то вторая часть условия <не последний элемент> - TRUE и цикл выполнится дальше. цикл прервётся ТОЛЬКО в том случае, если требуемые критерии СТРОГО в последнем элементе списка. тогда оба условия дадут FALSE - и цикл остановится. |
29.11.2015, 12:06 | #30 |
Пользователь
Регистрация: 11.11.2015
Сообщений: 20
|
Почему он не читает из файлов и отказывается туда записывать массив?
Когда прогоняю про брейкпоинту,он просто проскакивает цикл записи в файл и завершает процедуру |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Кольцевой список | Good_Luck | Помощь студентам | 2 | 29.10.2015 19:08 |
[РЕШЕНО] Динамический список на Делфи/Паскаль. Требуется консультации | Вадим Мошев | Помощь студентам | 2 | 18.04.2011 19:37 |
Кольцевой список | counter | Общие вопросы C/C++ | 4 | 20.10.2008 08:09 |