一 静态内存分配
1. C语言的全局变量、静态局部变量的存储实在编译时确定的,其存储的空间的实际分配在程序开始执行前完成。
2. 在栈上创建的,比如局部自动变量,在执行进入变量定义所在的复合语句时为他们分配存储单元。栈内存分配运算内置于处理器的指令集中 ,效率很高,但是分配的内存容量有限。
3. 以静态方式安排存储的好处主要是实现比较方便,效率高。
二 动态内存分配
从堆上分配,亦称动态内存分配 。程序在运行的时候用 malloc 或 new 申请任意多少的内存,程序员自己负责在何时用 free 或 delete 释放内存。动态内存的生存期由程序员决定 ,使用非常灵活,但如果在堆