內存的劃分
棧-stack
棧中的內存由編譯器自動管理。
函數的形參、普通局部變量都存儲在棧中。
堆-heap
C語言中使用malloc函數、OC中使用alloc函數申請的都是堆中的內存。需要程序員手動動態的 申請和釋放。若程序員申請過後,沒有釋放,若程序正常結束,OS會回收這部分內存;也有可能導致程序無法正常結束。
靜態存儲區
全局變量、靜態變量都存儲在靜態區。內存分配發生在編譯階段。系統管理。
常量區
const類型,常量字符串存儲在此區域。由系統管理。
程序代碼區
程序的二進制代碼,如函數體。由系統管理。