C 記憶體分割槽模型

2021-10-03 02:51:21 字數 545 閱讀 5132

c++程式在執行時,將記憶體大方向劃分為4個區域

**區:存放函式體的二進位制**,由作業系統進行管理的

全域性區:存放全域性變數和靜態變數以及常量

棧區:由編譯器自動分配釋放, 存放函式的引數值,區域性變數等

堆區:由程式設計師分配和釋放,若程式設計師不釋放,程式結束時由作業系統**

位址高低:棧區》堆區》全域性區》**區

記憶體四區意義:不同區域存放的資料,賦予不同的生命週期, 給我們更大的靈活程式設計。

(1) 資料結構的棧和堆

棧就是後進先出的線性表。

堆可以看做順序儲存的完全二叉樹,是經過排序的,有大頂堆,小頂堆。

(2) 記憶體分配中的棧和堆

記憶體中的棧區處於相對較高的位址以位址的增長方向為上的話,棧位址是向下增長的。棧中分配區域性變數空間。堆區是向上增長的用於分配程式猿申請的記憶體空間。另外還有靜態區是分配靜態變數,全域性變數空間的;僅僅讀區是分配常量和程式**空間的;以及其它一些分割槽。

c 記憶體分割槽模型

區 存放所有 的二進位制 全域性區,存放全域性變數,靜態變數,常量 棧區,編譯器自動分配與釋放,存放函式引數值和區域性變數,隨函式結束而釋放 堆區,有程式設計師進行分配與釋放,或者函式結束時自動釋放 不同區域用於存放那個不同的資料,有不同的生命週期 在程式編寫完,編譯後,生成exe檔案,這時已經出現...

C 基礎 記憶體模型記憶體分割槽模型

區 存放函式體的二進位制 由作業系統進行管理 全域性區 存放全域性變數和靜態變數以及常量 棧區 由編譯器自動分配釋放,存放函式的引數值 區域性變數等 堆區 由程式設計師分配和釋放,若程式設計師不釋放,程式結束時由作業系統 存放cpu執行的機器指令,區是共享的,只有乙份 是唯讀的。存放全域性變數 定義...

c 學習之記憶體分割槽模型

c 程式在執行時,將記憶體大致分為4個取區域。區 存放函式體的二進位制 由作業系統進行管理。全域性區 存放全域性變數和靜態變數以及常量 棧區 由編譯器自動分配釋放,存放函式的引數值 區域性變數等 堆區 由程式設計師分配和釋放,若程式設計師不釋放,則程式結束時由作業系統 在程式編譯後,生成了.exe可...