1、内存管理,是指软件运行时对计算机内存资源的分配和使用的技术。
其主要的目的是如何高校、快捷的分配,并且在适当的时候释放和回
收内存资源。
2、内存分配方式
1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块
内存在程序的整 个运行期间都要存在,例如全局变量,static 变量。
2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在
栈上创建,函数执行结束时这些存储单元自动被释放。效率高但分配
的内存容量有限。
3)从堆上分配,即动态内存分配。程序在运行的时候用 malloc 和
new 申请任意大小的内存,程序员自己负责在何时用 free 或 delete
释放内存。动态内存的生存期由自己决定,使用灵活,但有很多问题。
3、内存分区
五大区:运行时分配的区:栈和堆;编译时分配的区:BSS 段,数据
段、代码段
1)BSS 段:用来存放程序中未初始化的全局变量和静态变量一块内
存区域。它属于静态内存分配。BSS 节不包含任何数据,只是简单地
维护开始和结束的地址,即总大小,已便内存区能在运行时分配并被
有效地清零。
2)数据段:用来存放程序中已初始化的全局变量和静态变量的一块内
存区域,它属于静态内存分配,分为只读数据段和读写数据段。还可
存放字符串常量等,但一般放在只读数据段中。