Re: Почему malloc() выделяет 4K минимум?
От: _Winnie Россия C++.freerun
Дата: 04.02.06 09:03
Оценка:
Здравствуйте, unz0r, Вы писали:

U>Всем здравствовать.


U>С удивлением обнаружил что вызов malloc(1) вместо положенных 16 байт, жрет целых 4K памяти. На каком этапе проекта это произошло — не знаю, может накрутил что-то кривыми руками в настройках компилятора (VC++ .NET)?


U>Буду очень благодарен если кто подскажет.


Да, в Windows гранулярность страниц — 4 килобайта.
Выделив 1 байт, нам windows отдаёт целую страничку. Но если выделить потом ещё один байт, менеджер памяти положит скорее всего его в туже страничку.
Правильно работающая программа — просто частный случай Undefined Behavior
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.