默认情况下,_set_new_handler 函数的全局状态范围限定为应用程序。 若要更改此状态,请参阅 CRT 中的全局状态。您可以保存最后传递给 _set_new_handler 函数的函数地址,并在稍后恢复它:C++ 复制 _PNH old_handler = _set_new_handler( my_handler ); // Code that requires my_handler // . . . _set...
new_handler set_new_handler( new_handler _Pnew ) throw( ); 參數 _Pnew 要安裝的new_handler。 傳回值 0在第一次呼叫並在後續的呼叫上new_handler。 備註 函式會維護的靜態新的處理常式。指標儲存 _Pnew ,然後傳回指標先前儲存的值。new運算子使用新處理常式(size_t)。
如果new 操作数未能成功分配内存,则将控制权转移给错误处理机制。 复制 _PNH _set_new_handler( _PNH pNewHandler ); 参数 pNewHandler 指向应用程序所提供内存处理函数的指针。 参数为0导致新处理程序被移除。 返回值 返回指向由 _set_new_handler 注册的前异常处理函数,以便前面的函数之后可能还原。 如果以前...
如果当前的new_handler不能够做到更多的内存申请操作,或者它知道另外一个new_handler可以做到, 则可以调用set_new_handler函数设置另外一个new_handler,这样在operator new下一次调用的时候, 可以使用这个新的new_handler。 3、卸载new_handler,使operator new在下一次调用的时候,因为new_handler为空抛出内存申请异常。
new_handler newhandlersupport<t>::set_new_handler(new_handler p) { new_handler oldhandler = currenthandler; currenthandler = p; return oldhandler; } template<class t> void * newhandlersupport<t>::operator new(size_t size) { new_handler globalhandler = std::set_new_handler(currenthandler...
set_new_handler () 函数是 z/OS® XL C++ 错误处理机制的一部分。 如果您已向 set_new_handler () 注册了新处理程序函数,那么 new 操作程序将调用该新处理程序函数 (如果它无法分配存储器)。 如果未注册新的处理程序函数,那么缺省行为是新运算符返回 NULL。 The argument supplied to set_new_handler()...
通过包含NEW. H,然后以我们想装入的函数地址为参数调用set_new_handler( )函数,这样就替换了new-handler。 typedef void (*new_handler)(); 1. new_handler set_new_handler(new_handler p) throw(); 1. 可以看到,new_handler是一个自定义的函数指针类型,它指向一个没有输入参数也没有返回值的函数。
_PNH _set_new_handler( _PNH pNewHandler ); Parameters pNewHandler Pointer to the application-supplied memory handling function. An argument of 0 ornullptrcauses the new handler to be removed. Return value Returns a pointer to the previous exception handling function registered by_set_new_handler...
// _set_new_handler1.cpp #include <new.h> int handle_program_memory_depletion( size_t ) { // Your code } int main( void ) { _set_new_handler( handle_program_memory_depletion ); int *pi = new int[BIG_NUMBER]; } By default, the _set_new_handler function's global state is sc...
// _set_new_handler1.cpp #include <new.h> int handle_program_memory_depletion( size_t ) { // Your code } int main( void ) { _set_new_handler( handle_program_memory_depletion ); int *pi = new int[BIG_NUMBER]; } By default, the _set_new_handler function's global state is sc...