iOS 記憶體的幾大區域

2021-09-24 08:10:48 字數 412 閱讀 8991

棧區(stack):

由編譯器管理(分配釋放)存放函式引數值、區域性變數的值(函式中的基本資料型別)棧區的操作方式類似資料結構中的棧(先進後出)。

堆區(heap):

由程式設計師管理(分配釋放),若程式設計師不釋放,程式結束時可能由系統(os)**,存放程式設計師new出來的物件。堆的操作方式與資料結構中的堆不同,操作方式類似於鍊錶。

全域性區(又稱靜態區)(static):

由編譯器管理(分配釋放),程式結束後由系統釋放。存放全域性變數和靜態變數。有兩塊區域組成全域性區(靜態區),一塊是存放未初始化的全域性變數和靜態變數,另一塊是初始化完成的全域性變數和靜態變數,這兩塊區域是相鄰的

文字常量區:

由編譯器管理(分配釋放),程式結束後由系統釋放。存放常量字串。

程式**區:

存放函式的二進位制**

iOS總結 記憶體的幾大區域

參考 1.棧區 stack 由編譯器自動分配並釋放,存放函式的引數值,區域性變數等.棧是系統資料結構,對應執行緒 進場是唯一的.優點快速高效缺點資料不靈活 先進後出 棧空間分靜態分配和動態分配兩種 靜態分配是編譯器完成的,比如自動變數 auto 的分配 動態分配由alloca函式完成 棧的動態分配無...

記憶體的5大區域介紹

1.棧區 stack 是由 編譯器 自動分配並釋放,存放函式的 引數值 區域性變數等。棧是 系統 資料結構,對應的 執行緒 程序 是唯一的。優點是快速高效,缺點是資料不靈活 先進先出 棧空間 靜態分配 動態分配。靜態分配 由編譯器完成的,比如自動變數 auto 的分配。動態分配 由alloc函式完成...

OC 記憶體管理 記憶體5大區域

棧區域 系統自動分配.儲存區域性變數 如 int num 10,int p num。num 與 p 都儲存在棧區域 堆區域 允許程式設計師手動的從堆申請空間來使用,要主動釋放。除非程式結束 如 int 4,float 4 malloc,calloc bss段區域 儲存未初始化的全域性變數 靜態變數,...