首页 > 其他 > 详细

new/delete 和 malloc/free 区别总结

时间:2015-03-17 12:20:18      阅读:334      评论:0      收藏:0      [点我收藏+]

一、new 是c++中的操作符,malloc是c 中的一个函数

malloc与free是C++/C语言的标准库函数(要用到malloc函数,必须包含malloc.h),new/delete是C++的运算符。

二、new不仅分配内存,而且会调用构造函数。同理,delete会调用析构函数

new可以认为是malloc加构造函数的执行;delete可以认为是free加析构函数的执行。

new出来的指针是直接带类型信息的,而malloc返回的都是void指针。

对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。

三、new能够自动分配空间大小,而malloc必须指定

这是因为new 内置了sizeof、类型转换和类型安全检查功能。对于非内部数据类型的对象而言,new 在创建动态对象的同时完成了初始化工作。

 

new/delete 和 malloc/free 区别总结

原文:http://www.cnblogs.com/DeafeningZhao/p/4343917.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!