Здравствуйте, unz0r, Вы писали:
U>Всем здравствовать.
U>С удивлением обнаружил что вызов malloc(1) вместо положенных 16 байт, жрет целых 4K памяти. На каком этапе проекта это произошло — не знаю, может накрутил что-то кривыми руками в настройках компилятора (VC++ .NET)?
U>Буду очень благодарен если кто подскажет.
Да, в Windows гранулярность страниц — 4 килобайта.
Выделив 1 байт, нам windows отдаёт целую страничку. Но если выделить потом ещё один байт, менеджер памяти положит скорее всего его в туже страничку.
Правильно работающая программа — просто частный случай Undefined Behavior