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

Ответить
Vovka
Уже с Приветом
Сообщения: 1906
Зарегистрирован: Ср мар 14, 2001 4:01 am

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

Сообщение Vovka »

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

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

Сообщение CTAC_P »

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

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

Вернуться в «Вопросы и новости IT»