Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: cheops   (22.12.2007 в 17:26)
Так утечку памяти не обнаружите - нужны специальные инструменты (если работаете в C++ Builder включите Code Guard) - дело в том, что Windows выделяя память для приложения, запоминает сколько и где памяти было выделено и после завершения работы эту память освобождает в принудительном порядке, даже если приложение не позаботилось об корректном освобождении памяти.
Утечки памяти страшны в двумя вещами:
1) для приложений, которые без перезагрузки пашут длительное время - такая проблема становится бичом в случае серверов - проработает сервер неделю, глядишь, а память всю выжрал - еле ворочается - приходится его перегружать, пока он опять её не наберёт.
2) Кроме того, при некорректном освобождении памяти - стандарт сообщает, что результат может быть не предсказуемым - т.е. 1000 раз память может быть освобождена без последствий, а на 1001 возникнет ошибка и выявить её будет черезвычайно сложно.

PS При помощи оператора delete освобождается память выделенная оператором new, если вы выделяете память при помощи оператора new [], освобождать её также следует при помощи оператора delete [].


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: