Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
igorbelykh
8 / 8 / 2
Регистрация: 01.03.2013
Сообщений: 85
#1

Ошибка сегментации при срабатывании деструктора - C++

06.12.2013, 20:01. Просмотров 229. Ответов 2
Метки нет (Все метки)

Всем привет. Помогите, пожалуйста, разобраться с деструкторами. Суть проблемы заключается вот в чем: есть класс MyClass1 и AnotherClass, который используется в MyClass1. MyClass1 создает при инициализации динамический массив указателей на класс AnotherClass:
C++
1
2
acl = new AnotherClass*[n];
for(i = 0; i < n; ++i) acl[i] = new AnotherClass(data[i]);
AnotherClass при инициализации объекта тоже создает некоторые указатели и держит их, как говорится, до победного. И вот, когда дело доходит до уничтожения объектов, деструктор AnotherClass::~AnotherClass выкидывает такую ошибку: Ошибка сегментации, что говорит о том, что я, мол, заставляю его производить действия по неправильным адресам памяти (ну, или как там правильно будет сказать?) В дебаггере начинаю проверять переменные и выясняется, что переменные, которые на протяжение всей жизни объекта просто не могут быть больше одних и меньше других значений, вдруг начинают содержать вообще непонятные данные. На сколько я смог понять, то объекты вообще битые какие-то при срабатывании деструктора. Но почему? Что я не так делаю?

Заранее всем большое спасибо за оказание помощи!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2013, 20:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка сегментации при срабатывании деструктора (C++):

Вылет при срабатывании деструктора - C++
Собственно говоря вот: class MatrixGraph { int **arcs; int n; public: MatrixGraph(int vertexnumber) ...

Ошибка сегментации при работе со строками - C++
Задача: Дан файл содержащий строки вещественных чисел. Вычислить минимум и максимум в каждой строке. Результат записать в файл. ...

Ошибка сегментации при записи строки - C++
Доброго времени суток уважаемые форумчане!Помогоите исправить ошибку. Начну с условия задания, которое я пытаюсь исполнить: 270....

При отладке выдается ошибка сегментации - C++
Всем привет! :) У меня такая проблема: программа по численным методам (кусок кода - дифференциальная прогонка), pu - массив 101 на 101,...

Ошибка при работе деструктора - C++
#include&lt;iostream&gt; #include&lt;time.h&gt; #include&lt;Windows.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;fstream&gt; #include...

Ошибка при вызове деструктора - C++
Программа компилиться нормально,но после выполнения system(&quot;pause&quot;); выползает непонятное окно,и указывает на ошибку в деструкторе.В чем...

2
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
06.12.2013, 20:14 #2
Покажите реализацию конструктора, деструктора, оператора присваивания и конструктора копий
0
igorbelykh
8 / 8 / 2
Регистрация: 01.03.2013
Сообщений: 85
06.12.2013, 20:17  [ТС] #3
Я прошу прощения, тупанул я по-черному. Неправильно удалял массив ссылок.
C++
1
2
for(i = 0; i < n; ++) delete [] acl[i];
delete [] acl;
Сейчас переписал и все заработало
C++
1
2
for(i = 0; i < n; ++) delete acl[i];
delete [] acl;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2013, 20:17
Привет! Вот еще темы с ответами:

Ошибка при вызове деструктора - C++
По окончании программы выдает ошибку #include &lt;string.h&gt; #include &lt;iostream&gt; using namespace std; class nik //объявление...

Ошибка при вызове деструктора - C++
Добрый вечер! Почему при вызове деструктора вылетает ошибка после компиляции кода? #include &lt;conio.h&gt; #include &lt;iostream&gt; #include...

Ошибка при вызове деструктора - C++
Подскажите, что не так с этим деструктором? Просто выдает ошибку. Если его убираю то все идет норм. Если же оставляю, то куча всяких...

Ошибка при вызове деструктора - C++
Не могу дописать лабу... Надо создать 4 класса, описать поля и методы. Выкладываю исходники: Самый главный класс - Order. Выбивает ошибку в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru