Compartir a través de


set_new_handler

Instalar una función de usuario que debe llamar a operator new produce un error en el intento de asignar memoria.

new_handler set_new_handler( 
   new_handler _Pnew 
) throw( );

Parámetros

  • _Pnew
    El new_handler que se instalará.

Valor devuelto

0 en la primera llamada y new_handler anterior en llamadas subsiguientes.

Comentarios

La función almacena _Pnew en un puntero estático de nuevo controlador mantener, devuelve el valor almacenado previamente en el puntero. operador nuevo(size_t) utiliza el nuevo controlador.

Ejemplo

// new_set_new_handler.cpp
// compile with: /EHsc
#include<new>
#include<iostream>

using namespace std;
void __cdecl newhandler( )
{
   cout << "The new_handler is called:" << endl;
   throw bad_alloc( );
   return;
}

int main( ) 
{
   set_new_handler (newhandler);
   try
   {
      while ( 1 ) 
      {
         new int[5000000];
         cout << "Allocating 5000000 ints." << endl;
      }
   }
   catch ( exception e )
   {
      cout << e.what( ) << endl;
   }
}
  

Requisitos

Encabezado: <nuevo>

Espacio de nombres: std