2375 читали · 5 лет назад
Cтек ( Stack ) и Куча ( Heap ) : об основных различиях в двух словах. Очень кратко, но понятно.
Стек — это область оперативной памяти, которая создаётся для каждого потока. Он работает в порядке LIFO (Last In, First Out), то есть последний добавленный в стек кусок памяти будет первым в очереди на вывод из стека. Каждый раз, когда функция объявляет новую переменную, она добавляется в стек, а когда эта переменная пропадает из области видимости (например, когда функция заканчивается), она автоматически удаляется из стека. Когда стековая переменная освобождается, эта область памяти становится доступной для других стековых переменных...
4 года назад
Язык С++. 8.2. Стековая, или локальная, память.
Локальные, или стековые, переменные - это переменные, описанные внутри функции. Память для таких переменных выделяется в аппаратном стеке. Память выделяется в момент входа в функцию или блок и освобождается в момент выхода из функции или блока. При этом захват и освобождение памяти происходят практически мгновенно, т.к. компьютер только изменяет регистр, содержащий адрес вершины стека. Локальные переменные можно использовать при рекурсии (рекурсия – вызов функцией самой себя), поскольку при повторном входе в функцию в стеке создается новый набор локальных переменных, а предыдущий набор не разрушается...