堆栈和堆在C#

可能重复:
什么和堆栈和堆在哪里

堆和堆栈之间的C#有所不同。 我刚刚意识到,我一直认为堆栈是RAM,堆是硬盘驱动器。 但是现在我不确定它是否正确。 如果不是那么它们存储在一个地方有什么区别?


“堆栈”(或者更确切地说是调用堆栈)是自动管理的内存(即使是像C这样的“非托管语言”):局部变量以堆栈框架的形式存储在堆栈中,其中还包含过程或函数参数以及返回地址和也许是一些机器特定的状态,在返回时需要恢复。

堆内存是用于满足动态内存分配(C语言中的malloc )的那部分RAM(或者更确切地说:虚拟地址空间)。

然而,在C#中,堆和堆栈使用是一个实现细节。 但实际上,引用类型的对象是堆分配的; 值类型数据都可以存储在堆栈和堆上,具体取决于上下文(例如,如果它是引用类型对象的一部分)。

链接地址: http://www.djcxy.com/p/2255.html

上一篇: Stack and heap in c#

下一篇: Why is memory split up into stack and heap?