0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 8
|
||||||||||||||||||||||||||||||||||||
1 | ||||||||||||||||||||||||||||||||||||
Использование деструктора в односвязном списке с++06.05.2017, 14:17. Показов 1067. Ответов 5
Метки нет (Все метки)
Здравствуйте. Нужна срочная помощь!!!
Есть реализация односвязного списка в котором узел - класс, а не структура. Вначале программы произвожу выделение памяти для списка:
Если попробовать выделать память каждый раз после удалении списка(вызова delete), то все работает. Но я не пойму почему без этого не работает , ведь в деструкторе я описал только удаление нодов, список я не удалял.
0
|
06.05.2017, 14:17 | |
Ответы с готовыми решениями:
5
Конструктор в односвязном списке Стек на односвязном списке Ошибка в односвязном списке Ошибка в односвязном списке |
18822 / 9826 / 2401
Регистрация: 30.01.2014
Сообщений: 17,260
|
||||||
06.05.2017, 14:29 | 2 | |||||
kesyk, Очень сложно помогать при таком скудном описании. Кода нужно больше кода показывать, а в идеале, предоставить минимальный компилируемый пример, воспроизводящий ошибку.
В любом случае, если было сделано
sl уже нельзя. Память для него была освобождена. Т.е. именно, что тут удалился и объект списка, и узлы тоже, если в его деструкторе было описано их удаление.
0
|
284 / 232 / 114
Регистрация: 07.09.2016
Сообщений: 584
|
|
06.05.2017, 14:30 | 3 |
мда, проблемный код, в котором всякие там delete вызываются вы посчитали не нужным приводить здесь? разумный ход.
0
|
0 / 0 / 0
Регистрация: 24.10.2016
Сообщений: 8
|
|
06.05.2017, 16:17 [ТС] | 4 |
Так в деструкторе я описал очищение только от узлов списка. Получается , что список все равно очищается полностью? Тогда как сделать,чтобы не было ошибки на этом месте? Законно ли в качестве решения повторно выделять память для списка, после того как удалили его?
0
|
284 / 232 / 114
Регистрация: 07.09.2016
Сообщений: 584
|
|
06.05.2017, 16:24 | 5 |
ну раз сообщения вы не читаете, то вот решение конкретно вашей проблемы:
вы спрашиваете законно ли ... да так можно. а можно ничего не делать. зачем удалять и потом создавать. эффективнее вообще ничего не делать. результат будет тем же. в памяти что-то будет находится. но, вдобавок к этому вы получаете и решение проблемы которая возникает у вас при некоторых вызовах delete. Итого: вообще удалите из кода все delete
0
|
18822 / 9826 / 2401
Регистрация: 30.01.2014
Сообщений: 17,260
|
|
06.05.2017, 16:32 | 6 |
Деструктор вызывается при уничтожении объекта.
Может быть стоит повторить эти темы в своем учебнике, прежде чем продолжать?
0
|
06.05.2017, 16:32 | |
06.05.2017, 16:32 | |
Помогаю со студенческими работами здесь
6
Ошибка в односвязном списке Поиск в односвязном списке Указатели в односвязном списке Remove_at() в односвязном списке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |