Что делать, если нет памяти?

Vovka
Уже с Приветом
Posts: 1906
Joined: 14 Mar 2001 10:01

Что делать, если нет памяти?

Post by Vovka »

Коллеги, а как вы поступаете при ошибках выделения памяти - если malloc возвращает 0, или new бросает bad_alloc?
Вопрос не к тем, кто пишет какие-нить там драйверы или операционки (там, по-идее, другие требования по надёжности должны быть), а тем, кто пишет всякие полусистемные-полуприкладные вещи ("ядро", "платформу" какой-нить прикладной системы - в резнах компаниях называют по-разному), которые решают более-менее прикладные вещи, но оформлены в виде windows service, or ISAPI extension, и т.д.
С одной стороны, вроде как можно ловить bad_alloc и пытаться хотя-бы закрыться более-менее без потерь и в лог чего-нить написать, а с другой стороны, на что мы вообще можем рассчитавать в такой ситуации, есть ли какие-нить сервисы ОС, которые ещё заведомо живы? Сможем ли мы вообще что-нить осмысленное сделать?
User avatar
CTAC_P
Уже с Приветом
Posts: 6789
Joined: 01 Jun 2001 09:01

Re: Что делать, если нет памяти?

Post by CTAC_P »

Vovka wrote:Сможем ли мы вообще что-нить осмысленное сделать?

Разумеется. malloc дохнет чаще всего из за фрагментации, когда памяти еще до хрена, а нужного большого куска уже нет.

Return to “Вопросы и новости IT”