2014-03-14周五工作日志:HeapAlloc与malloc的区别
来源:互联网 发布:爆破数据库密码 编辑:程序博客网 时间:2024/05/18 01:06
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分配的实际空间可能比你指定的多些
0 0
- 2014-03-14周五工作日志:HeapAlloc与malloc的区别
- HeapAlloc与malloc的区别
- HeapAlloc与malloc的区别
- malloc与heapAlloc的区别
- 2014-03-14周五工作日志:检查指定目录是否存在的函数MakeSureDirectoryPathExists
- malloc与HeapAlloc分配的内存
- new malloc heapalloc vitualalloc区别
- VirtualAlloc HeapAlloc malloc new区别
- 不同内存分配方式的区别 VirtualAlloc HeapAlloc malloc new
- Globalalloc/LocalAlloc与HeapAlloc、malloc与new
- VC++中new,malloc,与HeapAlloc
- 工作积累之malloc与new的区别
- Windows系统上的VirtualAlloc, HeapAlloc和malloc,new的区别
- 2014-04-30工作日志:初始化与格式化的区别
- GlobalAlloc()和malloc()、HeapAlloc()
- malloc,new,heapAlloc,virtualAlloc
- malloc与calloc的区别
- alloca()与malloc的区别
- FragmentPagerAdapter
- js传递参数给php有乱码解决方案
- Git 推送和删除远程标签
- iOS 系列译文:Mach-O 可执行文件
- FragmentPagerAdapter
- 2014-03-14周五工作日志:HeapAlloc与malloc的区别
- Hadoop0.20.203.0+Hbase0.90.4完全分布式配置
- KVC和KVO
- log4j详解与实战
- MVC HtmlHelper用法大全
- 构建基于redis+gearman+nodejs 的消息推送系统
- 指针与地址的区别
- c语言格式控制符和转义字符
- 做好英文网站优化的四点注意事项