language-agnostic - memory-management - C memory layout - 栈和堆是什么,在哪里?

stack heap中文 / memory-management / stack / heap / dynamic-memory-allocation

编程语言书籍解释了值类型是在堆栈上创建的,而引用类型是在堆上创建的,而没有解释这两种东西是什么。我还没有阅读清楚的解释。我了解堆栈是什么。但,

RajeshKdev



Answer #1

在Windows上做一个巨大的临时缓冲区,你不怎么用,是不自由的。这是因为编译器会生成一个堆栈探测循环,每次你的函数输入时都会调用这个循环,以确保堆栈的存在(因为Windows在你的堆栈末尾使用一个单一的防护页来检测何时需要增长堆栈。如果你访问内存超过堆栈末端的一页,你就会崩溃)。)例子:

void myfunction()
{
   char big[10000000];
   //做一些仅在前99%的时间用于前1K的操作。
}