記憶體四區模型

2022-04-27 15:56:04 字數 532 閱讀 7845

記憶體可以先粗略的分為四個區,分別是**區,資料區,棧區和堆區。其中,資料區可以分為全域性區/靜態區、常量區。

資料區內容的生命週期從程式開始到程式終止;棧區的內容從函式左括號開始,到右括號為止,函式結束後,記憶體自動釋放**;堆區的內容由程式設計師自己開闢,手動釋放。

**區

程式指令

資料區:(全域性區/靜態區/常量區)

初始化的資料:

全域性變數,靜態全域性變數,靜態區域性變數

未初始化的資料:

未初始化的全域性變數,靜態全域性變數,靜態區域性變數,預設值均為0

常量字串常量

棧區

變數、陣列

結構體、指標

列舉、函式形參

堆區:大型資料,程式設計師自己開闢記憶體存放的資料

棧區向下生長,數值逐漸減小;堆區向上生長,數值逐漸增大。死迴圈不會使程式崩掉(佔滿記憶體),但是會佔滿cpu,遞迴會導致程式崩潰,導致棧溢位。

程式的記憶體模型 記憶體四區

在程式編譯後,生成了exe可執行程式,未執行該程式前分為兩個區域 區和全域性區 區 存放函式體的二進位制 由作業系統進行管理 存放cpu執行的機器指令。區是共享的,共享的目的是對於頻繁被執行的程式,只需要在記憶體中有乙份 即可。區是唯讀的,使其唯讀的原因是防止程式意外地修改了它的指令 全域性區 存放...

C C 筆記 記憶體四區模型

作業系統給c c 編寫的程式分配記憶體,通常將分配的記憶體劃分為以下四個區域 用於存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。用完由作業系統自動釋放,一般是由編譯器自動分配釋放的。棧向下生長,棧分配的位址越來越小。動態分配給程式的記憶體區域,由程式設計師手動釋放,若程式設計師...

C語言記憶體四區模型分析

圖1 1 記憶體四區模型是c語言學習的乙個重點也是乙個難點,大多程式設計師往往注重 的編寫而不注重 在執行中所進行的記憶體的變化而導致程式出現問題,嚴重時導致程式失控崩潰.圖1 1很直觀的表示記憶體當中儲存的資料型別,以及記憶體之間的關聯。1.c語言的記憶體區分 1.1 記憶體四區 1.1.1 區 ...