set_new_handler
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

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( );

_Pnew

El new_handler que se instalará.

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

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.

// 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;
   }
}
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Asignar 5000000 valores de tipo int.
Se llama al new_handler:
asignación incorrecta

Requisitos

Encabezado: <nuevo>

Espacio de nombres: std

Mostrar:
© 2016 Microsoft