malloc()和HeapAlloc()有什么区别?据我了解,malloc和HeapAlloc一样从堆分配内存,对吗?

那么区别是什么呢?

谢谢!

最佳答案

没错,它们都从堆分配内存。但是有区别:

  • malloc()是可移植的,是标准的一部分。
  • HeapAlloc() 不可移植,它是Windows API函数。

  • 在Windows上,很有可能在malloc之上实现HeapAlloc。我希望mallocHeapAlloc更快。
    HeapAllocmalloc具有更大的灵活性。特别是,它允许您指定要从中分配的堆。这样可以为每个进程提供多个堆。

    对于几乎所有的编码方案,您都可以使用malloc而不是HeapAlloc。尽管自从您标记问题C++以来,我希望您使用new!

    关于c++ - malloc()与HeapAlloc(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8224347/

    10-09 13:43