Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 26.06.2018, 23:04   #1
shonzie
Пользователь
 
Регистрация: 29.07.2016
Сообщений: 10
Репутация: 10
По умолчанию SIGABRT при пробе удаления удаленного участка памяти - способ избежать этого

Я только начинаю свой путь в ООП, поэтому написал в целе тестирования новинок ООП класс связного списка.
Есть деструктор вида

Код:

~LList() {
        for (LLNode<T> *crawl{root_}; crawl; crawl = crawl->getNext()) {
            LLNode<T> *tmp = crawl;
            delete tmp;
        }
    }

Насколько я понял, после того как я удалил участок памяти некого ноуда, вызвался (автоматически через некоторое время) деструктор этого же ноуда и попытался опять его удалить.
Какие принципиальные ошибки я допустил и как исправить данное поведение программы ?
shonzie вне форума   Ответить с цитированием
Старый 27.06.2018, 01:01   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 12,041
Репутация: 2054

icq: 216409213
По умолчанию

Нет. Вы удалили объект, а потом пытаетесь вызвать его метод.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 27.06.2018, 14:38   #3
shonzie
Пользователь
 
Регистрация: 29.07.2016
Сообщений: 10
Репутация: 10
По умолчанию

Действительно, зачем я написал этот фор.. только запутал себя
Код:

~LList() {
        LLNode<T> *crawl{root_};
        while (crawl) {
            LLNode<T> *tmp = crawl;
            crawl = crawl->getNext();
            delete tmp;
        }
    }

shonzie вне форума   Ответить с цитированием
Старый 27.06.2018, 14:38   #4
shonzie
Пользователь
 
Регистрация: 29.07.2016
Сообщений: 10
Репутация: 10
По умолчанию

Спасибо за помощь!
shonzie вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
копирование участка памяти xrob Общие вопросы Delphi 5 27.03.2014 15:40
ЗАПЛАЧУ ЗА СПОСОБ!!(УДАЛЕНИЯ ТЕКСТУР В ИГРЕ WARFACE) vitalek121212 Фриланс 3 16.06.2013 15:36
Избежать удаления троечки, в mp3 HellMercenariess Общие вопросы Delphi 7 04.07.2012 21:34
Выделение участка памяти RAZOR1703 Общие вопросы C/C++ 3 24.11.2011 19:18
Копирование участка памяти Celestia Assembler 1 21.02.2011 10:18


08:36.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru