栈区:有编译器自动管理和分配,存放局部变量和函数参数。

堆区:由程序员自己分配和回收,使用malloc  new分配需要使用free  delete手动回收,不回收会出现内存泄漏。当在堆区多次分配和释放空间后,可能会出现空间碎片的情况。(谁分配谁回收原则)

全局/静态区:这块空间分为初始化和未初始化相邻两块空间,存放初始化和未初始化全局变量和静态变量。

常量存储区(数据段):存放常量,如字符串,一般不允许修改。

代码段:存放程序的二进制代码。