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()
基础教程推荐
- 使用从字符串中提取的参数调用函数 2022-01-01
- 如何使图像调整大小以在 Qt 中缩放? 2021-01-01
- 为 C/C++ 中的项目的 makefile 生成依赖项 2022-01-01
- 在 C++ 中循环遍历所有 Lua 全局变量 2021-01-01
- 为什么语句不能出现在命名空间范围内? 2021-01-01
- 从 std::cin 读取密码 2021-01-01
- Windows Media Foundation 录制音频 2021-01-01
- 如何“在 Finder 中显示"或“在资源管理器中显 2021-01-01
- 管理共享内存应该分配多少内存?(助推) 2022-12-07
- 如何在不破坏 vtbl 的情况下做相当于 memset(this, ...) 的操作? 2022-01-01