C語言記憶體分配

2021-08-07 01:19:22 字數 433 閱讀 5338

objective-c從名字來看就可以知道是一門超c語言,所以了解c語言的記憶體模型對於理解objective-c的記憶體管理有很大的幫助。c語言記憶體模型圖如下:

從圖中可以看出記憶體被分成了5個區,每個區儲存的內容如下:

棧區在什麼時候釋放記憶體呢?我們通過下面的乙個例子來說明下:

- (void)print
在上面的**中當程式執行到 } 的時候,變數i和j的作用域已經結束了,編譯器就會自動釋放掉i和j所佔的記憶體,所以理解好作用域就理解了棧區的記憶體分配。

棧區和堆區的區別主要為以下幾點:

文章出處

ios高階(一)block與property

C語言記憶體分配

c語言的記憶體分配主要有5個區域 1 棧區 在執行函式時,函式內的區域性變數 不包括static變數 函式返回值的儲存單元在棧區上建立。函式執行結束時這些儲存單元自動被釋放。棧區記憶體分配運算內置於處理器的指令集中,效率很高,但分配的記憶體容量有限。2 堆區 程式在執行的時候用malloc call...

C語言記憶體分配

c語言的記憶體分配主要有5個區域 1 棧區 在執行函式時,函式內的區域性變數 不包括static變數 函式返回值的儲存單元在棧區上建立。函式執行結束時這些儲存單元自動被釋放。棧區記憶體分配運算內置於處理器的指令集中,效率很高,但分配的記憶體容量有限。2 堆區 程式在執行的時候用malloc call...

C語言記憶體分配

可執行程式在儲存時 沒有調入到記憶體 分為 區 text 資料區 data 和未初始化資料區 bss 3個部分。1 區 text segment 存放cpu執行的機器指令 machine instructions 通常,區是可共享的 即另外的執行程式可以呼叫它 因為對於頻繁被執行的程式,只需要在記憶...