|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Alexander Reznikov 2:4600/220 17 Jul 2004 01:53:39 To : Sergey Leschinsky Subject : динамическая памят --------------------------------------------------------------------------------
Как-то Sergey Leschinsky писал к Oleg Sharuk, но я услышал и решил ответить :
OS>> Это все понятно если идет ноpмальное завеpшение пpогpаммы в конце
OS>> это легко сделать, но как освобождать выделеннyю память если
OS>> пpоцесс пpыpыватся аваpийно, нy на пpимеp пpосто гpохается
OS>> pyками?
SL> Было это давно, но на сколько помню, вызывать free в общем-то
SL> необязательно. Память освободится автоматом пpи "ноpмальной" смеpти
SL> пpоцесса. Т.е. конечно слyчаи ее потеpи не исключены, но достаточно
SL> специфичны. ИМХО.
Вы вот тут всё говорите и говорите, что память освобождать не нужно, ОС сама всё
сделает. Однако, как мне кажется, стоит уточнить, что в некоторых случаях
освобождение памяти (и прочих системных ресурсов) бывает жизненно необходимым,
иначе получится обыкновенный memory/resource leak. К примеру, библиотека должна
заботится о своей памяти/ресурсах, т.к. она может быть использована в
долгоживущем процессе. Сам долгоживущий процесс тоже должен заботится о своей
памяти, т.к. система прибьёт память только при завершении оного проекта. Ещё
один пример - процесс, перехватывающий исключительные ситуации и не
завершающийся по этим самым ситуациям. Тут тоже бывают свои прибамбахи. Пример
из жизни, правда не совсем из эхотага, но разницы нету: вчерась упал один плугин
для фара, фар отключил плугин (.dll'ку) и поехал работать дальше. Hо с файлом,
открытым .dll'кой в экслюзивном режиме, что-то сделать не удалось до завершения
процесса (а ресурсы в ОС ведь связываются обычно именно с процессами). В данном
случае это всё мелочи, но вполне может быть случай модульной программы, где
нужно будет предусмотреть корректное убиение всех ресурсов опростоволосившегося
модуля (хотя это и сложно).
Баюшки !!
[ Черёмухин aka Гибкость TEAM ] [ UU9JЁКЛМH ]
--- Дедушка GoldED+/W32 1.1.5-2004.01.21
* Origin: Из двух Зол выбирают меньшего. (2:4600/220)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/1333440f85ee0.html, оценка из 5, голосов 10
|