malloc()和HeapAlloc()有什么区别?据我了解,malloc和HeapAlloc一样从堆分配内存,对吗?
那么区别是什么呢?
谢谢!
最佳答案
没错,它们都从堆分配内存。但是有区别:
malloc()
是可移植的,是标准的一部分。 HeapAlloc()
不可移植,它是Windows API函数。 在Windows上,很有可能在
malloc
之上实现HeapAlloc
。我希望malloc
比HeapAlloc
更快。HeapAlloc
比malloc
具有更大的灵活性。特别是,它允许您指定要从中分配的堆。这样可以为每个进程提供多个堆。对于几乎所有的编码方案,您都可以使用
malloc
而不是HeapAlloc
。尽管自从您标记问题C++以来,我希望您使用new
!关于c++ - malloc()与HeapAlloc(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8224347/