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

new/delete 和 malloc/free 区别总结

时间:2015-03-17 12:20:47      阅读:114      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!