林锐的《高质量编程》学习笔记——内存分配方式
内存分配有三种方式:
(1)
从静态存储区域分配。内存在程序编译时候就已经分配好,这块内存在程序的整个运行期间都存在。
例如:全局变量,static变量。
(2)
在栈上创建。再执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时,这些存储单元自动被释放。
栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
例如:局部变量。
(3)
从堆上分配,亦可以成为动态分配内存。程序在运行的时候用malloc或者new申请任意多少的内存,程序员自己负责在何时用free或者delete释放内存。
动态内存的生存期由我们决定,使用非常灵活,但是问题也最多。