1.内存管理的概念:是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高 效,快速的分配,并且在适当的时候释放和回收内存资源。
2.内存的五大区:
栈区 -- 存放局部变量,临时变量
堆区 -- 程序运行过程中,动态分配的内存
BSS区(全局区,静态区) -- 未初始化的全局变量和静态变量
数据段(常量区) -- 已经初始化的全局变量和静态变量
代码段 -- 源码代码程序编译产生的二进制数据,程序执行代码的一块区域
3.小结:栈区和堆区的内存是在运行时分配空间,BSS区.数据段.代码段是在编译器分配时分配空间
4.内存分配方式 内存分配方式有三种:
(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期 间都存在。例如全局变量,static变量。
(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结 束 时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的 内存容量有限。
(3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内 存, 程序员自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用非常灵 活,但问题也最多
希望能帮到你,有疑惑的地方可以追问,我会在晚上十一点回帖! |