В некоторых ситуациях, используя такие функции, как HeapAlloc, HeapFree сделает вашу жизнь проще. Одним из примеров может быть: большое приложение, в котором вам нужно выделить память в одном модуле (скажем, в library1.dll) и освободить эту память в главном модуле (скажем, program.exe). Это можно сделать безопасно, если вы используете функции HeapAlloc, HeapResize и HeapFree, но это невозможно сделать с помощью библиотеки времени выполнения C (например, malloc, free, resize).
НО: если у вас нет веских причин, вам следует придерживаться функций malloc / free / resize.
Кроме того, если вам нужно изменить разрешения выделенной памяти (например, чтобы сделать, если исполняемый, и т. Д.), Вы должны использовать такие функции, как VirtualAlloc, VirtualFree.