new/malloc
Posted leeqmoon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了new/malloc相关的知识,希望对你有一定的参考价值。
malloc/free
- 用户须指定创建多大的空间
- 不会调用相应的构造函数,必须自己进行初始化
- 申请成功,返回void*,在赋值前必须进行强制类型转换
- 申请失败时,返回NULL,不会进行安全检查,需用户自己进行判断是否为NULL
- free不会自动调用对象的析构函数,直接释放内存
new/delete
- 无须指定创建的空间大小
- 申请到内存后,会自动调用构造函数对对象进行初始化
- 申请成功,返回严格匹配的类型指针
- 申请失败时,会发出bad_alloc异常
- delete先调用析构函数,再释放内存
即new/delete把malloc/free的缺点全补上了,如内置的长度计算、类型转换、安全检查。
以上是关于new/malloc的主要内容,如果未能解决你的问题,请参考以下文章