Здравствуйте, Денис Ильин, Вы писали:
ДИ>Добрый день. Есть интересный вопросец.
ДИ>минипрограмка
ДИ>vector <int> nData;
ДИ>while(TRUE)
ДИ>{
ДИ> try
ДИ> {
ДИ> nData.push_back(rand());
ДИ> }
ДИ> catch(bad_alloc ba)
ДИ> {
ДИ> printf("bad alloactor!");
ДИ> }
ДИ>}
ДИ>что результат её работы в NT-образных платформах одинаковый:
ДИ>через некоторое время выскакивает мессага "Out of memory"
ДИ>Спасибо за ответы.
Боюсь я Вам конкретного ответа не дам, выскажу лишь некоторые соображения.
Соощение появляется из-за того, что система не может осуществить вызов printf()
(Выделить память для размещения параметров в стеке.)
ДИ>А мне бы хотелось ловить такие вещи в виде исключений (что бы было в стиле С++)
ДИ>Есть ли какой нибудь иной способ отлавливать невозможность выделить память
ДИ>(делать это до системы)? (а то следить за свободной памятью геморойно
ДИ>и неудобно — и вообще не в стиле С++)
Я долго медитировал над этим абзацем. Можно попросить Вас сформулировать мысль четче?
Отлавливать невозможость выделить память до системы?
Вмешиваться в работу операционной системы в стиле С++?
Насколько я понял Ваши рассуждения, эта проблема надумана, или перед Вами стояла другая задача, которую Вы свели к данной проблеме.
Копайте в сторону kernel API и исходников OS.