Выравнивание VirtualAlloc - PullRequest
       31

Выравнивание VirtualAlloc

2 голосов
/ 10 февраля 2010

Будет ли блок памяти, возвращаемый VirtualAlloc, всегда выравниваться по размеру страницы? Другими словами, будет ли модуль всегда равен нулю возвращаемого значения из VirtualAlloc и размера страницы?

Ответы [ 2 ]

2 голосов
/ 11 февраля 2010

Ну да.

В конце концов, вы вызываете VirtualAlloc для выделения некоторых страниц памяти. Вы не можете выделить только 1 байт без получения всей страницы, поэтому имеет смысл получить буфер, выровненный по размеру страницы.

1 голос
/ 10 февраля 2010

Из документации MSDN для VirtualAlloc:

Если память уже зарезервирована и фиксируется, адрес округляется до границы следующей страницы.Так что ответ - да, если вы фиксируете память, а не просто резервируете ее.

...