В этом вопросе есть несколько частей.Размер блоков кучи, объема и памяти
Согласно большинству ресурсов, доступных в сети, и в соответствии с учебниками также, куча и стек памяти растут в противоположных направлениях.
Do Heap и Stack фактически всегда растут в противоположных направлениях по отношению друг к другу, особенно когда дополнительная память выделяется ОС для памяти Heap?
Учтите, что изначально в программе используются только распределения кучи и минимальная память стека. Следовательно, куча будет покрывать почти всю совокупную память, выделенную для Stack и heap. Впоследствии Stack начинает расти. Будет ли выбрана ошибка или будет выделено новое место памяти для того, чтобы стек увеличился до максимального предела (максимальный предел = предел, указанный командой «ulimit -s»)? Если можно назначить новое местоположение, не нарушает ли это условие, что в адресах Stack всегда назначаются по порядку?
Предусмотрено ли заранее определенное ограничение на использование памяти инициализированными и неинициализированными переменными, хранящимися в разделе данных?
На них может быть дан ответ только для конкретной операционной системы и архитектуры процессора. ОС и аппаратное обеспечение полностью определяют политику управления памятью. – Gene
http://stackoverflow.com/questions/2067126/program-stack-and-heap-how-do-they-work – stellarossa