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

HeapAlloc大多是用于自己管理堆的情况

malloc可以移植是因为在不同的操作系统上有各自的实现,而所有平台上就叫这个名字。比如在Widnows上,VC中调用malloc时,其实在malloc内部就是通过调用Windows API HeapAlloc在指定的堆上分配内存的,而C++ Builder中调用malloc,其实在malloc内部调用AirtualAlloc,所以不同的编译器也有不同的实现,
但都是以OS的API为基础的,所以你的问题的回答其实是调用与被调用的关系.

malloc(); 和 HeapAlloc(); 都是从堆中分配相应的内存
不同的是一个是c run time的函数 一个是windows系统的函数
这么说你应该可以想到 对于windows程序来说 使用HeapAlloc();会比malloc();效率稍稍高一些
实际也是这样的 其实有许多crt的函数 ms在win中都提供了相似功能的系统函数

HeapAlloc和malloc的区别在于他们属于不同的函数库。前者属于平台sdk,后者则是标准库。
两个函数在分配空间时都是分配在堆中,实现结果也有细微差别。如malloc分配的实际空间可能比你指定的多些

HeapAlloc与malloc的区别相关推荐

  1. C++ new和malloc的区别

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

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

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

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

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

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

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

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

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

  6. kmalloc、vmalloc、malloc的区别

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

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

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

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

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

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

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

最新文章

  1. 活久见!谷歌开源“大杀器”,CV、NLP都能用!
  2. 【更新指南】Aspose.CAD for Java更新至v19.5版本,实施导出的“警告”通知机制!...
  3. 最初学习ASP.net的时候常会遇到的问题
  4. 中国发布自主开发的域名系统基础软件 “红枫”
  5. mysql5.7重置密码windows_MySql 5.7 for Windows 重置root密码
  6. java分割句子_关于Java的一些句子
  7. mall整合SpringBoot+MyBatis搭建基本骨架
  8. delay 芯片时序output_【第二章 STA概念 上】静态时序分析圣经翻译计划
  9. 金字塔原理--公开演讲
  10. 过新版狗php一句话,整理的最新WebSHell (php過狗一句話,過狗菜刀,2016過狗一句話,2016php免殺一句話)...
  11. SOCKET编程详解
  12. android poi导出excel,解决java poi导出excel2003不能超过65536行的问题
  13. 如何复制百度文档中的内容
  14. 计网学习记录,burp抓包等学习记录
  15. java连接redis存取数据(详细)
  16. esxi设置群晖核显直通
  17. img标签src引入svg如何修改颜色
  18. 苹果手机输入法软件测试,苹果手机三款输入法谁更牛?专业媒体评测后给出结果...
  19. Android中级面筋:开发2年的程序员如何短期突击面试?跟着这几步去准备,大厂也不远了
  20. 使用PS切图时,调整标尺单位

热门文章

  1. Redis实现分布式锁原理SetNx命令
  2. python socket清空接受区_用Python制作只属于你和ta的聊天渠道吧
  3. qt撤销与回退_Qt动画框架
  4. allegro PCB 引脚网络名不显示之解决办法
  5. linux下c的学习
  6. MySQL存储过程使用游标循环数据列表
  7. 开始使用Lumen吧,3分钟搞定登陆认证
  8. 云中的机器学习:FPGA 上的深度神经网络
  9. gson 转换 ListMap 注意事项
  10. Ipad 日程管理APP使用心得