Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
13 / 13 / 2
Регистрация: 13.09.2013
Сообщений: 113

Удаление объекта и освобождение памяти

17.03.2014, 22:15. Показов 1231. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть вот такой код. Интересуют выделенные ф-и. Последняя ясна - мы просто возвращаем память нашей ОС. Предпоследняя уничтожает объект (о_О). Собственно вопрос: Зачем уничтожать объект(и что при этом происходит с объектом),если можно просто отдать память ОС,а она там сама разберется(последняя ф-я).
Буду благодарен за понятный ответ (на пальцах)
Миниатюры
Удаление объекта и освобождение памяти  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.03.2014, 22:15
Ответы с готовыми решениями:

Освобождение памяти, удаление бинарного дерева
Добрый день. Написал программу, которая ищет в файле неиспользуемые переменные, т.е. те, которые объявлены. Всё в общем-то работает, но...

Освобождение памяти (удаление массива char) и raised exception class EAccessViolation
Подскажите плиз, есть программа, вот кусок AnsiString inputText; int inputTextLength; inputText= Form1->Edit1->Text; ...

Удаление объекта, созданного в динамической памяти
Здравствуйте! Подскажите, пожалуйста, правильное решение такой проблемы (возможно, это и не проблема вовсе :) . Вот фрагмент кода: ...

7
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
17.03.2014, 22:18
TheChosenOne, деструктор она вызывает )
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
17.03.2014, 22:19
Цитата Сообщение от TheChosenOne Посмотреть сообщение
Зачем уничтожать объект(и что при этом происходит с объектом),если можно просто отдать память ОС,а она там сама разберется(последняя ф-я).
А если в векторе объекты, у которых есть свои деструкторы?
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
17.03.2014, 22:23
TheChosenOne,
Реализация:
C++
1
2
3
4
5
  template <typename Tp>
  inline void destroy(Tp* pointer)
  { 
       pointer->~Tp(); 
  }
0
13 / 13 / 2
Регистрация: 13.09.2013
Сообщений: 113
17.03.2014, 22:33  [ТС]
Croessmah, а что произойдет ? Если не вызывать alloc.destroy(&elem);,а сразу вызвать alloc.deallocate(elem,space) ,где space - кол-во элементов, то память просто вернется ос,а указатель elem станет некорректным (ну,я так предполагаю).
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
17.03.2014, 22:37
Цитата Сообщение от TheChosenOne Посмотреть сообщение
а что произойдет ?
не будут вызваны деструкторы уничтожаемых объектов. Последствия? Утечки ресурсов, нарушения инвариантов и т.д.
1
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
17.03.2014, 22:38
Цитата Сообщение от TheChosenOne Посмотреть сообщение
о память просто вернется ос,а указатель elem станет некорректным (ну,я так предполагаю).
Да. Но если это был объект класса, который в конструкторе, например, открыл файл, то отсутствие вызова деструктора так и оставит этот файл открытым. Т.к. код закрытия в деструкторе не будет вызван.
1
13 / 13 / 2
Регистрация: 13.09.2013
Сообщений: 113
17.03.2014, 22:50  [ТС]
Ааааа,точно,понял,Спасибо всем
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.03.2014, 22:50
Помогаю со студенческими работами здесь

Резервирование памяти/освобождение памяти для трехмерного массива
Необходимо создать трехмерный массив (A), в котором элементы вдоль направления Z выли бы выровнены по 16 байт. Есть две проблемы: ...

Удаление объекта (освобождение памяти)
Здравствуйте все! Имеется следующий код: TForm1* Form1 = new TForm1(); void* form = Form1; delete form; Вопрос: удаление...

Освобождение памяти объекта потока
Приветствую всех. Подскажите, правильно ли я понимаю, что если создать поток (TThread) и установить его свойство FreeOnTerminated = true,...

Освобождение памяти объекта подписанного на событие
Народ, я тут натолкнулся на такой случай который меня озадачил. Изначально я предполагал, что объект _subscribedClass при выходе из...

Удаление бинарного дерева и освобождение памяти
Работаю с бинарным деревом поиска.Создал простую структуру а также объявил тип указателя на структуру: struct Node { int key;int...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru