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

Удаление динамической памяти - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Какую и как использовать функцию, чтобы float сделать int? http://www.cyberforum.ru/cpp-beginners/thread14765.html
Какую и как использовать функцию, чтобы float сделать int?
C++ Помогите разобраться с динамическими библиотеками Здравсвуйте форумчане... т.к я еще молод и зелен прошу помочь тех кто разбирается в динамических библиотеках: что такое есть билиотека( у меня есть представления но все они расплывчатые :P )и помочь закончить 2 не работающих фаила (выделение, удаление памяти есть, чтение с фаила массива кое-как сам написал (возможны ошибки)...помогите написать вывод массива на экран и в фаил)... и пожалуста... http://www.cyberforum.ru/cpp-beginners/thread14756.html
Как узнать статус потока? C++
добрый вечер, не подскажите, как узнать статус потока? Желательно, чтобы функция возвращала 0, если поток засуспендин, или 1 если он нормально работает.
Арифметическое выражение C++
Записать арифметическое выражение на языке C++ Можете написать пожалуйста Завтра последний день чтобы сдать комплексные
C++ Как в С++ переключить язык, чтобы он отображался на экране программы http://www.cyberforum.ru/cpp-beginners/thread14661.html
как в С++ переключить язык, чтобы он отображался на экране программы (не только в коде) ?
C++ Площадь. Умножение,Сравнение,вывод на экран Определить площадь квадрата(со стороной а) и окружности (радиуса R).Определить,площадь какого из них больше.Ответ вывести в виде сообщения.Ответ вывести в виде сообщения. Помогите решить пожалуйста подробнее

Показать сообщение отдельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16937 / 5342 / 328
Регистрация: 30.03.2009
Сообщений: 14,363
Записей в блоге: 26
17.05.2009, 17:25     Удаление динамической памяти
Цитата Сообщение от leviaphan Посмотреть сообщение
Просто меня книга настращала (Джесс Либерти, Брэдли Джонс, "С++ за 21 день"). Там было написано, что если данные не удалены из динамической памяти с помощью delete, то до выключения компьютера они так и будут там храниться.
А книга в каком году была написана? Может быть в дремучие времена, когда были только однозадачные операционные ситемы? В этом случае такое ещё могло произойти.

Цитата Сообщение от leviaphan Посмотреть сообщение
Т. е. delete нужно использовать только если надо освободить участок памяти до завершения программы? И в конце функции main() удалять динамические объекты уже бессмысленно?
Хорошим стилем программирования является удаление всей динамической памяти, которую ты использовал. В случае простых коротеньких программ скорее всего ничего не произойдёт, даже если ты вообще не будешь освобождать динамическую память. Однако есть тонкие моменты. После того, как отработала процедура main - программа ещё НЕ завершила свою работу. В этом месте начинает работать завершающий код, который сбрасывает все буфферизированные потоки в файлы (если файлы ещё не закрыты), вызываются деструкторы, может ещё какие-то действия. И в момент этих действий может случиться так, что понадобится дополнительная память (мало ли что там может быть написано в деструкторе) и если случится так, что именно в этом месте свободной памяти не окажется, то может получиться, что в какой-нибудь файл данные допишутся не до конца или случится ещё какое-нибудь безобразие.

Если много выделать памяти, но её не освобождать, то это доплнительная нагрузка на всю машину. ОС не знает, что ты эту память не используешь, а потому держит её, занимая при этом либо физическую память, либо дисковое пространство под swap
 
Текущее время: 10:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru