set_new_handler函数的使用

 部分资料来自《Effective C++》和http://www.cpluscplus.com

调用形式:

set_new_handler(void(*new_p())

set_new_handler函数(需要#include)接收一个空返回值空参数的函数指针,用来处理使用new操作符时可能遇到存储不足的情况,在存储不足的时候可以抛出std:bad_alloc或者调用cstdlib的abort/exit函数中止程序。

如果set_new_handler函数正常返回则表明内存足够用,且可以在new或者new[]使用时再次被调用。

 

示例代码:

// new_handler example #include #include #include using namespace std; void no_memory () { cout << "Failed to allocate memory!/n"; exit (1); } int main () { set_new_handler(no_memory); cout << "Attempting to allocate 1 GiB..."; char* p = new char [1024*1024*1024]; cout << "Ok/n"; delete[] p; return 0; }

你可能感兴趣的:(C++总结,delete,存储,c)