malloc() vs. HeapAlloc()(malloc() 与 HeapAlloc())
问题描述
malloc() 和 HeapAlloc() 有什么区别?据我了解 malloc 从堆中分配内存,就像 HeapAlloc 一样,对吗?
What is the difference between malloc() and HeapAlloc()? As far as I understand malloc allocates memory from the heap, just as HeapAlloc, right?
那有什么区别?
谢谢!
推荐答案
他们都从堆分配内存是对的.但也有区别:
You are right that they both allocate memory from a heap. But there are differences:
malloc()
是可移植的,是标准的一部分.HeapAlloc()
不可移植,它是一个 Windows API 函数.
malloc()
is portable, part of the standard.HeapAlloc()
is not portable, it's a Windows API function.
很可能,在 Windows 上,malloc
将在 HeapAlloc
之上实现.我希望 malloc
比 HeapAlloc
快.
It's quite possible that, on Windows, malloc
would be implemented on top of HeapAlloc
. I would expect malloc
to be faster than HeapAlloc
.
HeapAlloc
比 malloc
具有更大的灵活性.特别是它允许您指定要从哪个堆分配.这迎合了每个进程的多个堆.
HeapAlloc
has more flexibility than malloc
. In particular it allows you to specify which heap you wish to allocate from. This caters for multiple heaps per process.
对于几乎所有的编码场景,您将使用 malloc
而不是 HeapAlloc
.虽然因为你标记了你的问题 C++,我希望你使用 new
!
For almost all coding scenarios you would use malloc
rather than HeapAlloc
. Although since you tagged your question C++, I would expect you to be using new
!
这篇关于malloc() 与 HeapAlloc()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:malloc() 与 HeapAlloc()


基础教程推荐
- 常量变量在标题中不起作用 2021-01-01
- C++结构和函数声明。为什么它不能编译? 2022-11-07
- 如何将 std::pair 的排序 std::list 转换为 std::map 2022-01-01
- 在 C++ 中计算滚动/移动平均值 2021-01-01
- 我有静态或动态 boost 库吗? 2021-01-01
- 静态库、静态链接动态库和动态链接动态库的 .lib 文件里面是什么? 2021-01-01
- 如何通过C程序打开命令提示符Cmd 2022-12-09
- 如何在 C++ 中初始化静态常量成员? 2022-01-01
- 如何检查GTK+3.0中的小部件类型? 2022-11-30
- 这个宏可以转换成函数吗? 2022-01-01