![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Ander |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 17.11.2003 Где: Рига, Латвия Репутация: нет Всего: 1 |
Вот, наваял чего-то со списками. При запуске выдаёт таблицу со следующим содержанием, при этом список она всё-таки выводит (здесь файлы можно как-нибудь прикрепить?):
Debug Assertion Failed! Program: bla-bla-bla\mylist1.exe File: dbgheap.cLine:1044 Expression: _CrtIsValidHeapPointer(PUserData) Смотрел хелп - так и не понял, в чём дело. Код:
|
|||
|
||||
| mr.DUDA |
|
||||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
Список кольцевой, так ?
Значит,
пройдёт по 10-ти элементам, удалив их, а перед удалением последнего - настроит указатель "x" на значение "next" из последнего элемента, которое указывет на самый первый (уже удалённый !) элемент. Чего тут сделать можно ? Запомнить указатель на первый элемент, и сравнивать "x" не с NULL, а с этим указателем:
-------------------- ![]() |
||||
|
|||||
| Ander |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 17.11.2003 Где: Рига, Латвия Репутация: нет Всего: 1 |
Да, теперь всё работает, но я не понимаю:
разве в этом случае x не должен указывать на NULL? |
|||
|
||||
| mr.DUDA |
|
||||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 25 Всего: 232 |
нет. список кольцевой:
в выделенной строке создаётся элемент списка, в конструктор которого передаётся указатель на первый элемент (base) списка. Далее, из строки "x->next=" получается что все элементы, кроме последнего, настроены своим "next" на следующий элемент (ведь для последнего элемента цикл не выполняется !). Последний элемент настроен указателем "next" на первый элемент, а не на NULL. -------------------- ![]() |
||||
|
|||||
| Ander |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 17.11.2003 Где: Рига, Латвия Репутация: нет Всего: 1 |
Теперь ясно. Спасибо.
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |