内存的划分
栈-stack
栈中的内存由编译器自动管理。
函数的形参、普通局部变量都存储在栈中。
堆-heap
C语言中使用malloc函数、OC中使用alloc函数申请的都是堆中的内存。需要程序员手动动态的 申请和释放。若程序员申请过后,没有释放,若程序正常结束,OS会回收这部分内存;也有可能导致程序无法正常结束。
静态存储区
全局变量、静态变量都存储在静态区。内存分配发生在编译阶段。系统管理。
常量区
const类型,常量字符串存储在此区域。由系统管理。
程序代码区
程序的二进制代码,如函数体。由系统管理。