|
|
|
| Известно, что переменные и объекты, созданные в куче, следует удалять с помощью оператора delete. В противном случае память, выделенная под них, не будет высвобождена (что собственно и есть утечка памяти). Мне не понятно, какой из перечисленных ниже пунктов является следствием утечки памяти:
- уменьшается объем доступной программе памяти, выделенной ей при данном запуске.
- уменьшается объем ОЗУ компьютера. Если да, то восстанавливается ли объем ОЗУ при перезапуске программы?
Заранее благодарен. | |
|
|
|
|
|
|
|
для: Константин50
(16.01.2014 в 12:35)
| | Да программа сжирает память, пока не займет всю доступную.
Не только ОЗУ, но и виртуальную может забивать...
Да перезапуск программы спасет. Но если есть исходники подобной глючной программы - то лучше все же их подправить! | |
|
|
|
|
|
|
|
для: KernelPanic
(01.02.2014 в 18:22)
| | Спасибо за ответ. Но Ваш ответ порождает новый вопрос: Пусть в куче созданы необходимые объекты. Часть объектов уничтожена, как более ненужная. Остальные объекты используются до окончания работы программы. Программа благополучно отработала и дошла до конца. Если закрытие программы высвобождает всю выделенную программе память, то зачем программисту уничтожать оставшиеся, созданные в куче, объекты? Заранее благодарен. | |
|
|
|
|
|
|
|
для: Константин50
(16.02.2014 в 13:05)
| | Программа действительно должна уничтожить объекты при своем закрытии.
Во всяком случае это наблюдаю, когда код генерируется автоматически средой программирования... Но статическая проверка кода не всегда помогает.
Профилировку не все проводят.
Ну и при закрытии таких программ - память не всегда высвобождается.
ОС тоже не лишены ошибок... | |
|
|
|
|
|
|
|
для: KernelPanic
(25.02.2014 в 06:00)
| | Спасибо | |
|
|
|