Показать сообщение отдельно

  #2  
Старый 06.04.2009, 22:18
awdrg
Участник форума
Регистрация: 30.01.2009
Сообщений: 196
С нами: 9094175

Репутация: 66
По умолчанию

еще такой вопрос по памяти: хочу сделать обработку исключений следующим способом:
Код:
#include <iostream>
using namespace std;

main()
{
   char * a;
   for (int x = 0; x<1000; x++)
   {
      a = new char[10000000];
      if (a == NULL)
      {
         cout << "Error allocating memory\n";
         return 0;
      }         
      else
      { 
         cout << x << ")" << "memory allocated successfully\n";
      }      
   } 
   return 0;
}
но при превышении лимита выделяемой памяти пишет в консоли не мое сообщение а вот что:
Код:
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Aborted
запускал в bash'e никсов. Как я понимаю это ограничение на уровне самой ОС и его нельзя обойти? :-/

Последний раз редактировалось awdrg; 06.04.2009 в 22:25..
 
Ответить с цитированием