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
- 一起使用 MPI 和 OpenCV 时出现分段错误 2022-01-01
- 从python回调到c++的选项 2022-11-16
- 静态初始化顺序失败 2022-01-01
- C++ 协变模板 2021-01-01
- 与 int by int 相比,为什么执行 float by float 矩阵乘法更快? 2021-01-01
- 如何对自定义类的向量使用std::find()? 2022-11-07
- 使用/clr 时出现 LNK2022 错误 2022-01-01
- Stroustrup 的 Simple_window.h 2022-01-01
- STL 中有 dereference_iterator 吗? 2022-01-01