码迷,mamicode.com
首页 > 其他好文 > 详细

new/malloc的区别

时间:2021-06-02 15:04:08      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:异常   malloc   不可   target   调用   smi   targe   tail   语言   

相同点 ??

new/delete 和 malloc/free 都可以动态分配内存和释放内存

delete 和 free 都不能重复释放内存

delete 和 free 都可以释放空指针

不同点

1、new/delete 是C++的运算符,编译时需要加参数,malloc/free 是C语言中的函数,编译时需要头文件的支持。

2、 new 返回指定类型的指针,并且可以自动计算所需要大小,而 malloc 则必须要由我们计算字节数,并且在返回后强行转换为实际类型的指针。

3、malloc 只管分配内存,并不能对所得的内存进行初始化,而 new 可以对所得到的内存进行初始化。

4、new 在分配内存失败时会抛出异常,而 malloc 在分配失败的时候会返回NULL?。

5、new 会调用构造函数,而 malloc 不会调用构造函数?。

6、delete 会调用析构函数,而 free 不会调用析构函数?。

7、new/delete 都可以被重载,而 malloc/free 都不可以被重载?。
————————————————
版权声明:本文为CSDN博主「程序员小明丶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45372436/article/details/99684379

new/malloc的区别

标签:异常   malloc   不可   target   调用   smi   targe   tail   语言   

原文地址:https://www.cnblogs.com/lodger47/p/14823932.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!