Здравствуйте adontz, вы писали:
A>Здравствуйте KSV13, вы писали:
KSV>>Какая основная разница между этими функциями?
A>HeapAlloc выделяет память в куче по хенделу причём не обязательно этогоже процесса A>VirtualAlloc только из памяти процесса. A>VirtualAlloc рекомендуется для работы с участками памяти боляше 1-2 мегабайт так как работает с swap-файлом напрямую A>HeapAlloc работает с ним через стандартные сервисы
с помощью HeapAlloc можно выделить произвольное количество байт из существующей кучи, причём таких куч в процессе ожет быть несколько (see HeapCreate ).
с помощью VirtualAlloc тоже можно выделить произвольное количество байт, но реально размер будет кратен размеру страницы памяти.
кроме того, функции VirtualAlloc можно указать адрес, откуда выделять блок памяти; при резервировании памяти этот адрес кратен 64k, а при передачи памяти он кратен размеру страницы.
VirtualAlloc позволяет указывать атрибуты защиты страниц для выделяемой памяти.
VirtualAllocEx позволяет выделять память в другом процессе.