malloc与new的区别

 

 

 

 

1.new是运算符,而malloc是库函数

2.new可以重载,可以自定义内存分配策略,甚至不做内存分配,甚至分配到非内存设备上。而malloc不能。

3.new在用于定义一个新的非内部对象的时候,默认直接调用构造函数,在delete的时候,默认调用析构函数;

  但是,编译器无法约束malloc库函数来调用构造函数,只能通过类似于Initialize()初始化函数来进行初始化。

4.void * malloc(size_t size);

    malloc需要知道申请的内存空间的字节数,并且将返回的void*类型的地址,通过类型转换为需要的类型

   new 可以直接方便的 new一个对象即可,返回类型为T*。

 

 

 

 

 

 

 

 

 

 

 

 

参考链接:http://blog.csdn.net/hackbuteer1/article/details/6789164

posted @ 2016-06-27 10:09  drfxiaoliuzi  阅读(141)  评论(0编辑  收藏  举报