1 使用
- 为
- 、 则为 的操作运算符,它调用的分别为赋值运算符重载 和
2 内存分配位置
- 堆区
- 自由存储区。
- 自由存储区和堆区
3 开辟空间大小
4 异常检测
- 开辟失败返回
- 不需要判断,当分配内存失败时,会抛处
5 额外工作
- 实现机制:
- 实现机制:
- 如过程所示,
6 扩充 / 缩小
- 分配内存后,如果不够或者太多,可以使用
7 内存分配失败
- 分配内存失败,用户可以指定处理函数,或重新制定分配器。【
8 释放判空检测
- free 空指针会造成错误,必须判空。
- 而delete遇到空指针,不会做任何事情,不需要额外判空。
- 建议:无论是free还是delete,在释放之后,都习惯性的将指针置空,避免出现野指针或者悬垂指针。