区别如下:

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

实例如下:

```#include <iostream>#include "cstdio"#include "cstdlib"using namespace std;class A{public:A(){printf("A");}};class B{public:private:};int main(){cout << "sizeof(B) = " <<sizeof(B) << endl;A *p1 = new A;delete p1;  // 虽然不会崩溃,但是会发生内存泄漏,不是好的编程习惯,所以加上这句A *p2 = (A *)malloc(sizeof(A));free (p2);   // 虽然不会崩溃,但是会发生内存泄漏,不是好的编程习惯,所以加上这句return 0;}
```

C++中的new和malloc的区别相关推荐

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

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

  2. HeapAlloc与malloc的区别

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

  3. C++ new和malloc的区别

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

  4. c语言malloc引用类型作参数,c语言中动态内存分配malloc只在堆中分配一片内存.doc...

    c语言中动态内存分配malloc只在堆中分配一片内存 .C语言中动态内存分配(malloc)只在堆中分配一片内存,返回一个void指针(分配失败则返回0),并没有创建一个对象.使用时需要强制转换成恰当 ...

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

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

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

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

  7. sql语句中left join和inner join中的on与where的区别分析

    原文:sql语句中left join和inner join中的on与where的区别分析 关于SQL SERVER的表联接查询INNER JOIN .LEFT JOIN和RIGHT JOIN,经常会用 ...

  8. 无法解析 list 中的方法 iterator_Python-list中的append()和extend()方法区别

    一.append()和extend()方法都是用来添加数据到list末尾的,两者的区别: append()添加的时候会把添加的数据当成一个整体进行添加,允许添加任意类型的数据 extend()添加的时 ...

  9. Python中爬虫框架或模块的区别

    Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些. (1)爬虫框架或模块 Python自带爬虫模块:urllib.urllib2; ...

最新文章

  1. 图论中的知识点(等待补充和更新)
  2. 阿里云CentOS7.3搭建多用户私有git服务器(从安装git开始)
  3. IDEA 正式版终于支持中文版和 JDK 直接下载了(太方便了)附介绍视频
  4. HTML字符实体大全
  5. html 前端传入后台为object_浅谈Object.defineProperty()
  6. String.GetEnumerator 方法的C#例子
  7. 达芬奇DaVinci Resolve Studio Mac v17.4.6
  8. 实训-利用HTML+CSS制作某米官网首页
  9. 数据挖掘肿瘤预测_必读|TCGA数据挖掘-肺癌肿瘤免疫浸润分析
  10. 时间与空间的相对性——思想实验推导狭义相对论(四)
  11. 计算机组成原理 全加器实验
  12. 小乌龟git如何同步远程分支_在git远程之间同步分支的过程
  13. VUE笔记——B站狂神说
  14. python 开发微信小游戏_教你快速开发一个微信小游戏好友排行榜
  15. 四六级听力考试高频词汇分类记忆-日常生活类
  16. 微信企业付款转账到微信
  17. sonarqube+sonar-scanner+jenkins安装配置及使用
  18. buct寒假集训——lca
  19. Paint X for Mac破解教程
  20. Ubuntu18修改host文件加速访问Github

热门文章

  1. C#读取Excel文件,准换为list
  2. 如何写出优质干净的代码,这6个技巧你不能错过!
  3. 利用Flutter写一个跨平台的果核APP(4)——数据存储
  4. [JMX一步步来] 1、JMX的Hello World
  5. 数字签名和数字证书详解
  6. MAC终端密钥登录自动输入密码
  7. hadoop1.x 与hadoop2.x 架构变化分析
  8. MySQL优化篇:慢查询日志
  9. Kafka:消息是如何在服务端存储与读取的,你真的知道吗?
  10. 大数据中台之Kafka,到底好在哪里?