这个new_handler其实对应于signal_handler
当operator new申请一个内存失败时,它会进行如下的处理步骤:
1、如果存在客户指定的处理函数,则调用处理函数(new_handler),如果不存在则抛出一个异常。new_handler的模型为:void (*new_handler)()。
2、继续申请内存分配请求。
3、判断申请内存是否成功,如果成功则返回内存指针,如果失败转向处理步骤1。
具体可以看:
http://www.cnblogs.com/zhuyf87/archive/2013/04/04/2999916.html
本文详细介绍了当使用operator new申请内存失败时的处理流程。主要包括调用用户自定义的new_handler处理函数或抛出异常,并尝试再次分配内存。此外还提供了相关链接进一步解释此过程。
1195

被折叠的 条评论
为什么被折叠?



