代码区:
存放程序的代码,即CPU执行的机器指令,并且是只读的。
常量区:
存放常量(程序在运行的期间不能够被改变的量,例如: 10,字符串常量”abcde”, 数组的名字等)
静态区(全局区、全局数据区):
静态变量和全局变量的存储区域是一起的,一旦静态区的内存被分配, 静态区的内存直到程序全部结束之后才会被释放 。
分为 DATA 段和 BSS 段:
DATA 段(全局初始化区)存放初始化的全局变量和静态变量;
BSS 段(全局未初始化区)存放未初始化的全局变量和静态变量。
堆区:
由程序员调用malloc()函数来主动申请的,需使用free()函数来释放内存,若申请了堆区内存,之后忘记释放内存,很容易造成内存泄漏
栈区:
存放函数内的局部变量,形参和函数返回值。栈区之中的数据的作用范围过了之后,系统就会回收自动管理栈区的内存(分配内存 , 回收内存),不需要开发人员来手动管理。