Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
arper
16 / 16 / 13
Регистрация: 08.11.2014
Сообщений: 115
#1

Как освободить память из-под вектора объектов? - C++

02.03.2017, 23:38. Просмотров 173. Ответов 3
Метки нет (Все метки)

C++
1
2
3
vector<TObj*> obj;
obj.push_back(new obj());
obj.erase(obj.begin()+indx);//удаляю указатель который указывал на объект
"Для каждого new должен быть свой delete"
Как мне освободить память объекта при удалении указателя из вектора
P.s в самом объекте память явно не выделялась.
http://www.cyberforum.ru/cpp-beginners/thread1441154.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2017, 23:38
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как освободить память из-под вектора объектов? (C++):

Как освободить память, выделенную через new под матрицу?
Здравствуйте!!! Почему-то никак не освобождается память, выделенная оператором...

Освободить память вектора векторов без swap
Собственно будет ли &quot;Swap-To-Fit&quot; std::vector&lt;std::vector&lt;double&gt;&gt;...

Как освободить память?
подскажите как правильно освободить память,спасибо заранее))) #include...

Как правильно освободить память
Есть функция char* md5(const char*). Как освободить память выделенную ею?...

Как освободить память быстро?
Функция malloc неправильно работает...Заполняется память быстро,а очищается...

3
nmcf
6237 / 5549 / 2524
Регистрация: 14.04.2014
Сообщений: 23,337
02.03.2017, 23:41 #2
Сначала delete по индексу, а после erase().
1
DU3
281 / 233 / 114
Регистрация: 07.09.2016
Сообщений: 587
02.03.2017, 23:43 #3
явно вызывайте delete для объекта, прежде чем выпихнуть его из вектора.
а лучше вектор смартпоинтеров ипсользуйте. тогда не надо будет этим заниматься.
std::vector<std::unique_ptr<TObj>> ну или шаред поинтеры.
1
MrGluck
Модератор
Эксперт CЭксперт С++
7982 / 4863 / 1424
Регистрация: 29.11.2010
Сообщений: 13,238
02.03.2017, 23:59 #4
Используйте smart pointer-ы
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2017, 23:59
Привет! Вот еще темы с решениями:

Как правильно освободить память
Здравствуйте все! Подскажите, как правильно освобождать память, выделенную под...

Как правильно освободить память
Здрасте! (Тема: Шаблоны функций.) Не могу правильно написать метод для...

Как правильно освободить память
Написал вот такой костыль: wchar_t* getDate() { time_t seconds =...

Как правильно освободить память деструктором?
Не могу понять, как освободить память деструктором... В общем, я объявляю в...


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

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

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