стековая память это



Автор Игорь Тиунов задал вопрос в разделе Другие языки и технологии

что такое стек процесса? и получил лучший ответ

Ответ от Валерий Аникин[гуру]
в стеке могут быть другие процессы (потоки). Т. е. процесс может запускать ещё кого-то... так вируса маскируются.

Ответ от .[гуру]
Стек (stack) — область памяти, в которой переменные хранятся методом LIFO (Last In First Out).
Как правило, стек процесса используется функциями для быстрого размещения локальных переменных в памяти. Например, функция
void my_function(const int N)
{
float my_array[N];
}
размещает массив my_array в стеке. Программист при этом не знает, что стек использует LIFO, зато может быть уверен, что my_array исчезнет из памяти при завершении функции.
Надо отличать стек от свободной памяти (heap). Чтобы в C разместить данные в свободной памяти, используется malloc:
void my_function(const int N)
{ // Плохая функция!
// Функции должны размещать данные на стеке во избежание утечек памяти и для ускорения работы!
float* my_array=(float*)malloc(sizeof(float)*N);
free(my_array);
}
Эта функция размещает массив my_array в свободной памяти, а затем освобождает эту свободную память. Это неправильный способ использования памяти функциями, даже при использовании free().
Свободная память позволяет разместить большой объём информации, но обладает двумя недостатками:
1) Свободная память не использует LIFO, поэтому данные в свободной памяти могут быть фрагментированы. Из-за этого размещение данных в свободной памяти, а также их чтение, занимают больше времени, чем размещение и чтение из стека.
2) Стек функции освобождается от данных автоматически при завершении функции (опять-таки, благодаря LIFO). А чтобы убрать данные из свободной памяти, нужно вызывать функцию free(). Если забыть это сделать, использованная область свободной памяти останется зарезервированной. Это может приводить к "утечкам памяти" — ошибкам, при которых программа занимает по мере работы всё больше и больше памяти без какой-либо пользы.
Свободную память надо использовать для переменных, имеющих долгое время жизни. Для короткоживущих (и малых по объёму) данных надо использовать стек.
P.S.: если говорить не о стеке процесса, а о стеке вообще, то стек есть любая схема хранения данных, использующая метод LIFO.

Ответ от И.А. Голованов[гуру]
стек память с доступом в последнее
что первое влезло, то глубже
Верхнее достали - более раннее становится верхним
как магазин у калаша - верхний патрон. новый -продавили глубже. выстрел -следующий подполз
(см FIFO и LIFO)
функции лезут в свою память вынимая параметры из своего стека если длины данных не срослись - оппаньки
---
добавка
Текст прог вообще нигде не хранится
После компиляции и линковки уже нет текста, а есть только машинные коды (если не включены опции компилятора закачивающие текст внутрь проги для последующего дебага)
переменные - тут по разному. могут в память основного процесса пихаться а могут динамически появляться-исчезать
зависит от программёра, языка и ОС.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: что такое стек процесса?
спросили в Другое
что такое мастер функций?
Мастер функций

Функции можно вводить вручную, но в Excel предусмотрен мастер функций,
подробнее...

Зачем нужны динамические переменные в C++ Кто-нибудь объяснит на человеческом?)
Динами́ческая переме́нная — переменная в программе, место в оперативной памяти под которую
подробнее...
спросили в Дно
Объясните пожалуйста обычным языком что такое стековая память,её дно и зачем она нужна!!??заранее спасибо)
Магазин от АКМ (или от пистолета) видели - вот это и есть стек. Впихивается элемент (патрон)
подробнее...
спросили в Стек
Стек. Стековая память
Уточните, о каком стеке вы спрашиваете?
Если о системном стеке процессоров семейств i8080,
подробнее...
спросили в Железо MIPS
основные блоки центрального процессора.. Помогите пожалуйста
Процессором называется устройство, непосредственно осуществляющее процесс обработки данных и
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
Страусс Ролин на Википедии
Посмотрите статью на википедии про Страусс Ролин
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*