new和malloc都是用来申请内存的_new和malloc申请的内存空间

new和malloc都是用来申请内存的_new和malloc申请的内存空间new/malloc的区别1、new/delete是c++的关键字,需要编译器支持;malloc/free是库函数,需要头文件支持2、new一个类型时,编译器会根据类型信息自行计算申请的内存大小;malloc需要显示指出所需内存大小3、申请成功。new返回类型的指针,

new/malloc的区别
  1、new/delete是c++的关键字,需要编译器支持;malloc/free是库函数,需要头文件支持

  2、new一个类型时,编译器会根据类型信息自行计算申请的内存大小;malloc需要显示指出所需内存大小

  3、申请成功。new返回类型的指针,属于安全性的操作符;malloc返回void *,需要强制转换成我们想要的类型。都是在堆上动态分配内存

  4、分配失败。new内存分配失败,抛出bac_alloc异常;malloc内存分配失败,返回null

  5、new的过程,底层先调用operator new(使用malloc实现)申请足够的内存,再调用构造函数,初始化成员变量,返回自定义类型指针;delete先调用operator delete(使用free实现),再调用析构函数,底层再调用freenew和malloc都是用来申请内存的_new和malloc申请的内存空间new和malloc都是用来申请内存的_new和malloc申请的内存空间

  6、new申请单个元素可以初始化intnum = new int(10),申请多个元素int arrPtr = new int[10];

  7、new申请的内存会初始化;malloc申请的内存不会初始化

  8、new/delete比malloc和free的效率稍微低点,因为new、delete的底层封装了

  operator new、operator delete, 而operator new、operator delete底层又封装了malloc、free

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/96961.html

(0)
上一篇 2024年 5月 21日 下午11:10
下一篇 2024年 5月 21日 下午11:21

相关推荐

关注微信