Форум программистов, компьютерный форум CyberForum.ru

указатели и очистка памяти - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 42, средняя оценка - 4.79
ntny
7 / 7 / 0
Регистрация: 17.06.2012
Сообщений: 168
23.11.2012, 20:41     указатели и очистка памяти #1
В отличии от java в с++ память по умолчанию нужно очищать самостоятельно.

Понятно, что если память зарезервированная неким указателем не нужна его следует просто удалить.
но если указатель например р1 ссылается на структуру, мне же нужно присвоить указателю другую структуру того же типа содержащуюся в адресе р2.
Т.е. если я просто присвою указателю р1 который уже содержит структуру адрес новой структуры указателя р2, то старые данные потеряются навсегда но будут занимать место?

Правильно ли я поступлю, если создам новый новый указатель р0, сделаю присвоения р0 = р1; затем delete* р0;
и далее p1 = p2 ?

К слову читал, что в С++ есть сборщики мусора.
Насколько они используются ?
Это экзотика или же стандартная фича?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2012, 20:41     указатели и очистка памяти
Посмотрите здесь:

C++ Очистка памяти
C++ Очистка памяти
Очистка памяти - ошибка C++
C++ Очистка памяти
Правильная очистка памяти C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
29.11.2012, 14:27     указатели и очистка памяти #21
taras atavin, вы скатываетесь в какую-то никому не нужную философию. К этому приводит любое обсуждение с вашим участием. В прошлый раз у вас невозможно было реализовать сборщик мусора в принципе, теперь у вас джава не объектно-ориентированная ни на грош. Возможно, мы с вами живём в различных Вселенных. Как бы то ни было, философию это будем заканчивать. К теме она никакого отношения не имеет.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
29.11.2012, 14:30     указатели и очистка памяти #22
Выделение части проекта в оболочечный спецкласс - совсем другое дело. Ни какой архитектуре оно не мешает.

Добавлено через 44 секунды
Цитата Сообщение от silent_1991 Посмотреть сообщение
taras atavin, вы скатываетесь в какую-то никому не нужную философию. К этому приводит любое обсуждение с вашим участием. В прошлый раз у вас невозможно было реализовать сборщик мусора в принципе, теперь у вас джава не объектно-ориентированная ни на грош. Возможно, мы с вами живём в различных Вселенных. Как бы то ни было, философию это будем заканчивать. К теме она никакого отношения не имеет.
А нефиг меня на философию провоцировать.
Кроме того, без философии прощай объектно-ориентированное проектирование архитектуры, потому что закономерность и истинная случайность сходства классов - это сплошная философия.

Добавлено через 1 минуту
Цитата Сообщение от silent_1991 Посмотреть сообщение
В прошлый раз у вас невозможно было реализовать сборщик мусора в принципе,
Эйси, автоматический вызов деструкторов не возможен в принципе. Как же тогда вообще юзать кучу?
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
29.11.2012, 14:33     указатели и очистка памяти #23
Цитата Сообщение от taras atavin Посмотреть сообщение
Эйси, автоматический вызов деструкторов не возможен в принципе. Как же тогда вообще юзать кучу?
Это уже обсуждалось. Если вы до сих пор думаете, что сборка мусора не возможна - что ж, это ваши личные проблемы. Удачи.
 Комментарий модератора 
Повторяю, оффтоп закончили. Следующие сообщения буду удалять. Если уж очень хочется пообщаться на эти темы - пишите мне в СЛ.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2012, 05:48     указатели и очистка памяти
Еще ссылки по теме:

C++ Очистка памяти
C++ Указатели и очистка памяти
очистка памяти C++

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4924 / 2667 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
30.11.2012, 05:48     указатели и очистка памяти #24
C++ поддерживает идиому RAII.
Особенно явно она используется в STL, с умными указателями.
Также, в потоках ввода/вывода с файлов, деструктор сам закроет нужный файл (С++11), и вызывать метод close() уже нет необходимости.
Yandex
Объявления
30.11.2012, 05:48     указатели и очистка памяти
Ответ Создать тему
Опции темы

Текущее время: 14:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru