HeapAlloc or VirtualAlloc
От: KSV13  
Дата: 16.07.01 09:01
Оценка:
Какая основная разница между этими функциями?
Re: HeapAlloc or VirtualAlloc
От: adontz Грузия http://adontz.wordpress.com/
Дата: 16.07.01 11:33
Оценка:
Здравствуйте KSV13, вы писали:

KSV>Какая основная разница между этими функциями?


HeapAlloc выделяет память в куче по хенделу причём не обязательно этогоже процесса
VirtualAlloc только из памяти процесса.
VirtualAlloc рекомендуется для работы с участками памяти боляше 1-2 мегабайт так как работает с swap-файлом напрямую
HeapAlloc работает с ним через стандартные сервисы
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: HeapAlloc or VirtualAlloc
От: Varchev ILYA Nickolaevich  
Дата: 16.07.01 13:57
Оценка:
Здравствуйте adontz, вы писали:

A>Здравствуйте KSV13, вы писали:


KSV>>Какая основная разница между этими функциями?


A>HeapAlloc выделяет память в куче по хенделу причём не обязательно этогоже процесса

A>VirtualAlloc только из памяти процесса.
A>VirtualAlloc рекомендуется для работы с участками памяти боляше 1-2 мегабайт так как работает с swap-файлом напрямую
A>HeapAlloc работает с ним через стандартные сервисы

с помощью HeapAlloc можно выделить произвольное количество байт из существующей кучи, причём таких куч в процессе ожет быть несколько (see HeapCreate ).

с помощью VirtualAlloc тоже можно выделить произвольное количество байт, но реально размер будет кратен размеру страницы памяти.
кроме того, функции VirtualAlloc можно указать адрес, откуда выделять блок памяти; при резервировании памяти этот адрес кратен 64k, а при передачи памяти он кратен размеру страницы.
VirtualAlloc позволяет указывать атрибуты защиты страниц для выделяемой памяти.

VirtualAllocEx позволяет выделять память в другом процессе.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.