学好c的内存分配, 了解如何自己掌控内存, 有助于理解OC里面的内存管理.
系统内存:包括5个区域
1.栈区:
特点:系统分配以及回收内存.
存放内容:函数体内创建的变量分配在栈区
main.m中
int a = 10; // int a = 10 中的a存在内存的栈区 10是存在于常量区, 相当于常量区有一个10, copy到栈区(如图)
2.堆区(重点):由程序员非配和回收, 如果程序员未回收, 那么, 内存就会越用越少, 有可能导致内存不够用, 程序崩溃. 当然, 如果够用, 程序安然无恙, 当程序退出时, 堆内存由系统回收.
3.常量区:用于存放常量的内存区域
4.静态区(全局区):(与栈区类似):
特点:系统分配以及回收内存.
存放内容:函数体外创建的变量分配在全局区.
5.代码区:存放源代码编译结果的区域.