![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 05.04.2010
Сообщений: 56
|
![]()
Помогите найти ошибку в коде, двусвязные списки. Программа работает, но выскакивает ошибка на деструкторе, в котором прописано удаление списка, не могу понять в чем ошибка, помогите пожалуйста.
Код:
сout<<"Изучаю программирование" точка с запятой
|
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 06.06.2010
Сообщений: 42
|
![]()
Особо не вникал, но метод Array<T>::DellSpis() заваливается при втором его вызове из-за того, что в процессе его работы по первому вызову Head становится пустым указателем. Если упростить этот метод до следующего вида, то вроде бы программка работает нормально:
Код:
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 05.04.2010
Сообщений: 56
|
![]()
Oleg_SK, этот метод тоже пробовал, та же самая ошибка
сout<<"Изучаю программирование" точка с запятой
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 05.04.2010
Сообщений: 56
|
![]()
по дебагеру вылетает ошибка в этой строке:
delete[]temp->mass;
сout<<"Изучаю программирование" точка с запятой
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 06.06.2010
Сообщений: 42
|
![]()
Crudelis
У меня ваша программа после внесения указанных мной изменений работает без проблем (если не считать утечки памяти, из-за мусорного кода в конструкторе, который непонятно зачем выделяет память в хипе, которая затем нигде не освобождается). Пробовал запускать ее и в отладочном и в релизном варианте, результат один - нормальная работа. Таким образом, я больше ничем не могу вам помочь, т.к. не могу воспроизвести возникающую у вас ошибку. Могу только порекомендовать, проследить в отладчике когда и где портится адрес находящийся на момент возникновения ошибки в указателе temp или temp -> mass. З.Ы: Кстати, зачем вы связываете с каждым узлом списка массив из десяти элементов, а затем работаете с этими массивами так, как будто они состоят только из пяти элементов? Так и было задумано? Последний раз редактировалось Oleg_SK; 15.07.2010 в 21:41. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 05.04.2010
Сообщений: 56
|
![]()
Oleg_SK, дело в том что это всего лишь кусок программы, вся остальная часть не суть важная, и составляет более 700 строк, я нашел ошибку, оказывается проблема была не в деструкторе, а другом методе класса, её я исправил, и уже доделал программу. На счёт выделения непонятной памяти спасибо за совет я просто не заметил его, убрал
сout<<"Изучаю программирование" точка с запятой
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите найти ошибку в коде ( С++ ) | nexUS1 | Помощь студентам | 1 | 29.12.2009 01:09 |
помогите найти ошибку в коде | Saka | Помощь студентам | 6 | 07.12.2009 11:43 |
не могу найти ошибку в коде | pavelstraut | Общие вопросы C/C++ | 5 | 24.07.2009 23:20 |
Помогите найти ошибку в коде | Jora_Kornev | Общие вопросы Delphi | 10 | 10.01.2009 17:00 |
Памагите найти ошибку в коде...С++ | Goblin | Помощь студентам | 1 | 13.05.2008 18:15 |