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

2、new出来的指针是直接带类型信息的,而malloc返回的都是void*指针。

3、new 建立的是一个对象;alloc分配的是一块内存.

4.new建立的对象你可以把它当成一个普通的对象,用成员函数访问,不要直接访问它的地址空间;malloc分配的是一块内存区域,就用指针访问好了,而且还可以在里面移动指针.

为什么要有new、delete?

对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。.因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以一个能完成清理与释放内存工作的运算符delete。

简而言之:

new      是一个操作符,可以重载   
malloc  是一个函数,可以覆盖   
new      初始化对象,调用对象的构造函数,对应的delete调用相应的析构函数   
malloc 仅仅分配内存,free仅仅回收内存

转载于:https://www.cnblogs.com/julie-yang/p/4677962.html

new和malloc的区别相关推荐

  1. HeapAlloc与malloc的区别

    malloc是在CRT的内存堆上分配的,这个堆的存在一般来说你是不会关心的 HeapAlloc则不同,你需要给它指定你想从哪个堆上分配,而这个堆是从HeapCreate创建出来的 HeapAlloc大 ...

  2. C++ new和malloc的区别

    这里先对new和delete简单进行一下总结,然后再细说new和malloc的区别. 一.new和delete C语言提供了malloc和free两个系统函数,完成对堆内存的申请和释放.而C++则提供 ...

  3. C++ | 动态分配内存 new和malloc的区别

    01 静态分配内存 通常声明变量都采用"静态分配"的方式,也就是所有变量声明必须在编译阶段完成. 02 动态分配内存--new和delete 动态分配内存是指程序在运行时才提出分配 ...

  4. 面试中常被问到(六)new/delete和malloc/free区别

    new/delete和malloc/free区别 (1)二者都是用来实现动态内存管理,内存空间的开辟(new,malloc)以及内存空间的释放(delete,free) (2)malloc/free是 ...

  5. 【C++】new和malloc的区别

    一.显而易见的区别 1.属性 new/delete是C++关键字,需要编译器支持: malloc/free是库函数,需要头文件支持. 2.参数 使用new操作符申请内存分配时,无须指定内存块的大小,编 ...

  6. C++中的new和malloc的区别

    区别如下: new会先调用malloc分配内存,并调用类的构造函数创建对象 malloc只是分配内存,不调用类的构造函数创建对象 delete会执行类的析构函数销毁对象,然后调用free释放内存空间 ...

  7. kmalloc、vmalloc、malloc的区别

    简单的说: kmalloc和vmalloc是分配的是内核的内存,malloc分配的是用户的内存 kmalloc保证分配的内存在物理上是连续的,vmalloc保证的是在虚拟地址空间上的连续,malloc ...

  8. new与malloc的区别以及实现方法

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/shanghairuoxiao/article/details/70337890 new和malloc ...

  9. new运算符与malloc函数区别

    相同点: 都可以进行内存管理. 不同点: 1.new 是c++中的操作符,malloc是c 中的一个函数 2.new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而ma ...

  10. C++(1)new和malloc的区别和联系

    最近着手学习c++,对着书一边读一遍写代码.遇到了一些疑问,记录一下. 当我在读到new这个关键字的使用的时候,作者写道:有heap分配出这个类型的对象,将地址返回去. 读到这,我会想起当初学过的c语 ...

最新文章

  1. jq append添加的元素click获取不到的解决方法
  2. 大数据架构中使用JSON-RPC好,还是RESTful API好?
  3. java 基础知识部分提炼
  4. Python3反转字符串
  5. Kylin3.1.3连接Hbase报错找不到 hbase-common lib not found的解决办法
  6. c语言选择法排序案例,谁能给我一个c语言选择排序法的简单例子
  7. 数据在市场运营中的应用
  8. C语言工作笔记-函数指针的使用(补充C回调系统)
  9. C++并发中的条件变量 std::condition_variable
  10. Ruby的Range类
  11. 关于Ubuntu10.04中使用 apt-get install 安装软件总是出现“E: Package *** has no installation candidate” 错误的解决方案
  12. list自定义排序工具类
  13. JavaScript、canvas小球加速和减速运动
  14. cad计算机土方软件,土方计算软件FastTFT - 飞时达软件
  15. 亲测Trimble X7三维扫描仪
  16. Y的十年职业生涯小结(2012-2022)
  17. 一个web页面的访问的过程
  18. 数据分析基础篇16讲之07用户画像:标签化就是数据的抽象能力
  19. react 入门学习(一)
  20. https://api.douban.com 不在以下 request 合法域名列表中,请参考文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/net

热门文章

  1. 使用PaupGUI软件合并一致性树consensus tree
  2. 北师大计算机网络原理和应用作业,北师大网络作业计算机组成原理 作业一(可编辑)...
  3. mysql 5.7 缺点_MySQL · 特性分析 · MySQL 5.7 外部XA Replication实现及缺陷分析
  4. 计算机组成原理考试计算题,计算机组成原理常考计算题.doc
  5. java 音乐api接口_关于网易云音乐爬虫的api接口?
  6. openssh windows_WINDOWS环境配置SSH服务
  7. C++知识点7——函数传参
  8. 高温保护_连续4天高温预警!高温作业,这些劳动保护知识一定要懂!
  9. java 字符串原子变量,如何在java中提供原子读/写2个变量?
  10. 两队选手每队5人进行一对一的比赛(算法)