Программирование на C и C++

Онлайн справочник программиста на C и C++

Карта памяти С-программы

Откомпилированная С-программа создает и использует 4 логически разделенных области памяти, имеющих свое назначение. Первая область — это память, содержащая код программы. Следующая область предназначена для хранения глобальных переменных. Оставшиеся две —это стек и куча. Стек используется для самых различных целей при выполнении программы. Он содержит адреса возвратов вызываемых функций, аргументы, передаваемые в функции, и локальные переменные. Он также используется для хранения текущего состояния процессора. Куча - это область свободной памяти, которую программа может использовать для динамического выделения памяти под такие объекты, как списки и деревья.

Хотя точное физическое местоположение каждой области памяти зависит от способа компиляции программы, диаграмма ниже, показывает, как в общих чертах С-программа располагается в памяти.

Концептуальная карта памяти программы на С