2 new
<new>
中定义了几种函数,这些函数负责动态内存的分配;
2.1 类型
- nothrow_t: nothrow 类型
- new_handler: new 处理函数的函数指针类型
- bad_alloc : 分配内存失败抛出的异常
- bad_array_new_length :数组长度不正确的异常
常量:
- nothrow : nothrow常量
2.2 函数
- operator new : 分配存储空间
- operator new[]:分配存储空间给数组
- operator delete:释放分配存储空间
- operator delete[]:释放分配的数组存储空间
- set_new_handler :注册一个 new 处理函数
- get_new_handler :获得当前的 new 处理函数
当operator new申请一个内存失败的时候,它会进行如下的处理步骤:
1、如果存在客户指定的处理函数,则调用处理函数(new_handler),如果不存在则抛出一个异常。
2、继续申请内存分配请求。
3、判断申请内存是否成功,如果成功则返回内存指针,如果失败转向处理步骤1
例子:
#include <i