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

Управление динамической памятью при работе с классами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Первый отрицательный и последний положительный элемент читаемый из файла http://www.cyberforum.ru/cpp-beginners/thread1213564.html
Из файла (имя файла вводится с клавиатуры) считывается массив целых чисел. Размер массива заранее неизвестен. Выведите в файл количество четных чисел, расположенных в массиве между первым и...
C++ Счетчик в Binsearch Поиск в отсортированной строке длины n буквы (char k) Помогите поставить счетчик, который будет показывать, сколько раз встречается эта буква в слове int BinSearch(string M, int n, char k) { ... http://www.cyberforum.ru/cpp-beginners/thread1213557.html
Как работает конструктор копирования? C++
ECM::ECM(const ECM &E) //êîíñòðóêòîð êîïèðîâàíèÿ { if (E.type) {type= new char ; strcpy(type, E.type);} else type=0; type=E.type;Ghz=E.Ghz;Memory=E.Memory;Gb=E.Gb; } Объясните как работает...
Найти 10 первых натуральных чисел, оканчивающихся на цифру 7 кратных числу 9, не меньших 100 (Pascal -> C++) C++
Найти 10 первых натуральных чисел, оканчивающихся на цифру 7 кратных числу 9 и находящихся в интервале левая граница которого равна 100 var i, v : integer; begin v:=99; for i := 1 to 10 do...
C++ Повторный ввод данных после ошибки http://www.cyberforum.ru/cpp-beginners/thread1213538.html
как после слов "ошибка!!!..." вернуться для повторного ввода оценки ученику?#include <iostream> #include <fstream> #include <string> using namespace std; int k, i, r; char u; string line;...
C++ Количество трёхзначных чисел, все цифры которых разные Есть задача Составить прорамму , которая считает количество натуральных чисел ,в которых все 3 цифры разные. Вот , что я написал int col = 0; for (int i = 100 ; i < 1000; i++) if (((i/100) !=... подробнее

Показать сообщение отдельно
Divergence
7 / 7 / 0
Регистрация: 19.06.2013
Сообщений: 174

Управление динамической памятью при работе с классами - C++

21.06.2014, 03:11. Просмотров 654. Ответов 13
Метки (Все метки)

Всем привет!

Есть очень сложный класс, внутри которого есть куча указателей, в его конструкторе все эти указатели получают память при помощи оператора new, затем в декструкторе вся эта память освобождается.
В функции main я создаю указатель на свой класс, затем выделяю динамическую память под этот указатель оператором new. Когда класс перестает быть нужным, я вызываю оператор delete для него. Программа закрывается с ошибкой 0х03.
Когда я убрал оператор delete, программа начала закрываться 0х00 (как и должна).
Отсюда вопрос: деструктор неявно удаляет объект класса из динамической памяти?
Или я чего то не понял? оО
Чтобы не быть голословным, приведу пример кода:
C++
1
2
3
4
5
6
7
8
9
int main(void)
{
SuperClass* MyClass; //Создаем указатель на экземпляр класса, который содержит в себе кучу всего
MyClass = new SuperClass(); //Выделяем динамическую память под этот класс
 
//Работаем с классом MyClass
 
delete MyClass; //Судя по всему, вызывает проблемы, почему???
} //Конец программы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru