评论

收藏

[C++] #yyds干货盘点#new和delete区别

编程语言 编程语言 发布于:2021-12-25 19:49 | 阅读数:489 | 评论:0

new和delete区别
属性
new和delete是C++关键字,需要编译器支持。malloc和free是库函数,需要头文件支持。
参数
2我s使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出内存的大小
返回类型
new操作符内存分配成功时,返回的是对象的类型,类型严格与对象匹配,无须进行类型转换,故new是符合类型安全性的操作符。而malloc内存分配成功则是返回void *, 需要通过强制转换将 void * 指针转换成我们需要的类型
分配失败
new内存分配失败时,会抛出bac_alloc异常。malloc分配内存失败时返回NULL
重载
C++允许重载new/delete操作符,malloc不允许重载


关注下面的标签,发现更多相似文章