Стек – это вот:
Серьезно.
А теперь в подробностях. Когда я писал о том, что функция вызывается, или данные передаются в функцию, то умышленно упускал из виду один момент.
Например, когда вызывается функция, то процессор перепрыгивает с текущего адреса, на которым он находится, на адрес функции...
Стек — это область оперативной памяти, которая создаётся для каждого потока. Он работает в порядке LIFO (Last In, First Out), то есть последний добавленный в стек кусок памяти будет первым в очереди на вывод из стека. Каждый раз, когда функция объявляет новую переменную, она добавляется в стек, а когда эта переменная пропадает из области видимости (например, когда функция заканчивается), она автоматически удаляется из стека. Когда стековая переменная освобождается, эта область памяти становится доступной для других стековых переменных...