malloc. overcommit. macOS

решил проверить, сколько динамической памяти выделит mac под программу. написал примерно так:

char* array = new int[100]; //сотню здесь увеличивал
if (array == null) std::cout << "OS didn't gave memory.";

параллельно открыл activity monitor, чтобы отслеживать кол-во используемой процессом памяти. очень смутило, что мне дали 50гб... В итоге дошел до overcommit(a) - памяти тебе могут "выделить" очень много, но когда дело доходит до её инициализации... ядро просто убивает процесс. в итоге вопросы: как мне отключить overcommit(извините за уродскую формулировку)? к чему это приведет? т.е. при запросе памяти в 100гб мне просто в

char* array

положат ноль? (хочу именно такой результат!). Нашел похожий вопрос в инете, там был файл и конкретная строка, в которой надо просто флажок поменять, но речь там шла о линуксе + советовали этого не делать.


Ответы (0 шт):