language-agnostic - memory-management - heap stack - Что и где стопка и куча?

стек процесса / memory-management / stack / heap / dynamic-memory-allocation

Книги по языку программирования объясняют, что типы значений создаются в стеке , а ссылочные типы создаются в куче , без объяснения, что это за две вещи. Я не читал четкого объяснения этого. Я понимаю, что такое стек . Но,

RajeshKdev



Answer #1

Создание огромного временного буфера в Windows,который вы не используете,не является бесплатным.Это происходит потому,что компилятор сгенерирует цикл зондирования стека,который вызывается каждый раз при входе в вашу функцию,чтобы убедиться,что стек существует (потому что Windows использует единственную страницу защиты в конце стека,чтобы определить,когда ей нужно вырастить стек.Если вы получите доступ к памяти более чем на одну страницу в конце стека,то у вас произойдет сбой).Пример:

void myfunction()
{
   char big[10000000];
   // Делаем то, что используется только для первых 1 КБ из больших 99% времени.
}