九、 通用工具 ----动态内存管理---new

本文介绍了C++中`new`操作符用于动态内存管理的相关内容,包括`new`的类型如`nothrow_t`、异常类型如`bad_alloc`,以及`operator new`、`operator delete`等函数的使用。还详细阐述了`new`的分配方式,如普通`new`、`nothrow new`和`placement new`,并强调了`placement new`的使用注意事项和应用场景。
摘要由CSDN通过智能技术生成

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值