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

malloc/free 与 new/delete的区别

时间:2015-07-02 15:22:25      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:

  区别:

    1、malloc与free是C/C++语言的标准库函数,new/delete是C++的运算符;

    2、new自动计算需要分配的空间,而malloc需要手工计算字节数;

    3、new是类型安全的,而malloc不是;比如:

           int* p = new float[2];//编译错误;

           int* p = (int*)malloc(2*sizeof(double));//编译时无法指出错误

    4、new调用operator new分配足够的空间,并调用相关对象的构造函数,而malloc不能调用构造函数;delete将调用该实例的析构函数,然后调用类的operator delete,以释放该实例占用的空间,而free不能调用析构函数;

    5、malloc/free需要库文件支持,new/delete则不需要。

malloc/free 与 new/delete的区别

标签:

原文地址:http://www.cnblogs.com/nobbyoucanyouup/p/4616028.html

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