一个由c/oc编译的程序占用的内存分为以下五个部分:
1.栈区:由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。程序自动管理不需要手动管理。
2.堆区:一般由程序员手动管理, 若程序员不释放,程序结束时可能由OS回收 。
3.静态区(全局区):保存自动全局变量和 static 变量(包括 static 全局和局部变量)。静态区的内容在总个程序的生命周期内都存在,由编译器在编译的时候分配。注意:未初始化的全局变量和未初始化的static 变量在相邻的另一块区域。
4.常量区:存放常量字符串。 程序结束后由系统释放。
5.方法区(程序代码区):方法转为函数具体实现,存放函数体的二进制代码。