栈区(stack):
栈区主要存放函数的参数值、局部变量的值,是由编译器进行自动的分配和释放的,通常在函数执行结束后就随之释放了,这种操作方式类似于数据结构中的栈。
堆区(heap):
堆区就是通过new、malloc、realloc分配的内存块,编译器不管理他们的释放,有应用程序去负责释放。如果应用程序没有释放掉,操作系统会自动回收。
静态区:
全局变量和静态变量是存储在静态区的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。在程序结束后,系统自动释放。
常量区:
常量存放在常量区,不允许修改。
代码区:
代码区存放函数的二进制代码。