Demonstrating set_new_handler : set_new_handler « Development « C++ Tutorial






#include <iostream>
#include <new>
#include <cstdlib>
using std::cerr;
using std::cout;
using std::set_new_handler;
using std::abort;

void f()
{
   cerr << "called";
   abort();
}

int main() {
   double *ptr[ 50 ];

   set_new_handler( f );

   for ( int i = 0; i < 50; i++ )
   {
      ptr[ i ] = new double[ 50000000 ];
      cout << "Allocated 50000000 doubles in ptr[ " << i << " ]\n";
   }
   return 0;
}
Allocated 50000000 doubles in ptr[ 0 ]
Allocated 50000000 doubles in ptr[ 1 ]
Allocated 50000000 doubles in ptr[ 2 ]
Allocated 50000000 doubles in ptr[ 3 ]
Allocated 50000000 doubles in ptr[ 4 ]
called
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.








5.26.set_new_handler
5.26.1.Demonstrating set_new_handler