您当前的位置: 首页 > 

令狐掌门

暂无认证

  • 3浏览

    0关注

    513博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

new malloc delete free有什么区别

令狐掌门 发布时间:2021-04-03 20:28:09 ,浏览量:3

new/malloc, delete/free 的区别,这个问题在面试时会经常被问到。

相同点:

       都是内存的分配与释放。

不同点:

       new/delete是C++ 操作符,new在分配内存时,会调用对象的构造函数,可以被重载;

       malloc/free是库函数,不能被重载, 且malloc 返回值的类型是void *,所以在调用malloc 时要显式地进行类型转换,将void * 转换成所需要的指针类型。例如下面的代码,用malloc 申请一块长度为length 的整数类型的内存,程序如下:

int *p = (int *) malloc(sizeof(int) * length);

       如果想了解的再深一点,那就得谈谈系统的内存分配问题了,异常复杂。

关注
打赏
1652240117
查看更多评论
立即登录/注册

微信扫码登录

0.0362s