set_new_handler

安装将调用的用户功能,当 operator new 失败其尝试分配内存时。

new_handler set_new_handler(
   new_handler _Pnew
) throw( );

参数

  • _Pnew
    将安装的new_handler。

返回值

0在第一次调用,并在以前的 new_handler 对的后续调用。

备注

函数在它所维护的静态 新的处理程序 指针存储 _Pnew,然后返回的指针上以前存储的值。 new运算符使用新的处理程序(size_t)。

示例

// 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;
   }
}
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  

要求

标头: <new>

命名空间: std