应用程序在内存中的位置

Posted on 2011-07-14 02:23  一年级的小学生  阅读(681)  评论(0编辑  收藏  举报

一个完整的应用程序在内存中的分布通常会是这样子的:

代码区(Code Segment):代码区,顾名思义,存放程序的可执行代码。

常量区(Const Segment):所有的常量都是存放在常量区。

全局数据区(Global Data Segment):全局数据区存放的是全局变量或者是static 变量。

栈区(Static Segment):栈区存放的是所有局部变量,一个函数的参数。

堆区(Heap Segment):堆区的数据由程序员申请并且释放,如果程序员不释放,那么程序在结束之后,会由操作系统进行释放。堆区的内存空间通过malloc或者new申请出来的。

(C#中 struct是在栈区而class是在堆区,因此C#中,struct的速度比class快。)