Форум: Форум C++Разное
Новые темы: 00
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Утечка памяти
 
 автор: Константин50   (16.01.2014 в 12:35)   письмо автору
 
 

Известно, что переменные и объекты, созданные в куче, следует удалять с помощью оператора delete. В противном случае память, выделенная под них, не будет высвобождена (что собственно и есть утечка памяти). Мне не понятно, какой из перечисленных ниже пунктов является следствием утечки памяти:
- уменьшается объем доступной программе памяти, выделенной ей при данном запуске.
- уменьшается объем ОЗУ компьютера. Если да, то восстанавливается ли объем ОЗУ при перезапуске программы?
Заранее благодарен.

  Ответить  
 
 автор: KernelPanic   (01.02.2014 в 18:22)   письмо автору
 
   для: Константин50   (16.01.2014 в 12:35)
 

Да программа сжирает память, пока не займет всю доступную.
Не только ОЗУ, но и виртуальную может забивать...
Да перезапуск программы спасет. Но если есть исходники подобной глючной программы - то лучше все же их подправить!

  Ответить  
 
 автор: Константин50   (16.02.2014 в 13:05)   письмо автору
 
   для: KernelPanic   (01.02.2014 в 18:22)
 

Спасибо за ответ. Но Ваш ответ порождает новый вопрос: Пусть в куче созданы необходимые объекты. Часть объектов уничтожена, как более ненужная. Остальные объекты используются до окончания работы программы. Программа благополучно отработала и дошла до конца. Если закрытие программы высвобождает всю выделенную программе память, то зачем программисту уничтожать оставшиеся, созданные в куче, объекты? Заранее благодарен.

  Ответить  
 
 автор: KernelPanic   (25.02.2014 в 06:00)   письмо автору
 
   для: Константин50   (16.02.2014 в 13:05)
 

Программа действительно должна уничтожить объекты при своем закрытии.
Во всяком случае это наблюдаю, когда код генерируется автоматически средой программирования... Но статическая проверка кода не всегда помогает.
Профилировку не все проводят.
Ну и при закрытии таких программ - память не всегда высвобождается.
ОС тоже не лишены ошибок...

  Ответить  
 
 автор: Константин50   (11.03.2014 в 11:52)   письмо автору
 
   для: KernelPanic   (25.02.2014 в 06:00)
 

Спасибо

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования