分为五个区:栈区、堆区、静态区、常量区、代码区
内存分配如下:
1.栈区
存放函数的形参、局部变量等,由编译器自动分配和释放,通常在函数执行完后就释放了
2.堆区
通过malloc,realloc等动态开辟的内存块
用free函数进行内存释放,否则会造成内存泄漏
3.静态区
存储全局变量和静态变量
初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域
程序结束后,由系统释放
4.常量区
字符串、数字等常量存放在常量区
const修饰的全局变量存放在常量区
程序运行期间,常量区的内容不可以被修改
5.代码区
存放代码