記憶體分配分為三種 靜態 棧區 堆區

2021-08-13 14:44:04 字數 462 閱讀 1721

總述

記憶體分配分為三種:靜態、棧區、堆區

分別解釋

(1)靜態儲存區:主要存放static靜態變數、全域性變數、常量。這些資料內存在編譯的時候就已經為他們分配好了記憶體,生命週期是整個程式從執行到結束。

(2)棧區:存放區域性變數。在執行函式的時候(包括main這樣的函式),函式內的區域性變數的儲存單元會在棧上建立,函式執行完自動釋放,生命週期是從該函式的開始執行到結束。(例如,delay_ms())

(3)堆區:程式設計師自己申請一塊任意大小的記憶體—也叫動態記憶體分配。這塊記憶體會一直存在知道程式設計師釋放掉。c語言中,用malloc or new動態地申請記憶體,用free or delete釋放記憶體。良好習慣:若申請的動態記憶體不再使用,要及時釋放掉,否則會造成記憶體洩露。

記憶體分配 靜態儲存區 棧 堆

一 記憶體基本構成 可程式設計內存在基本上分為這樣的幾大部分 靜態儲存區 堆區和棧區。他們的功能不同,對他們使用方式也就不同。靜態儲存區 內存在程式編譯的時候就已經分配好,這塊內存在程式的整個執行期間都存在。它主要存放靜態資料 全域性資料和常量。棧區 在執行函式時,函式內區域性變數的儲存單元都可以在...

記憶體分配 靜態儲存區 棧 堆

一 記憶體基本構成 可程式設計內存在基本上分為這樣的幾大部分 靜態儲存區 堆區和棧區。他們的功能不同,對他們使用方式也就不同。靜態儲存區 內存在程式編譯的時候就已經分配好,這塊內存在程式的整個執行期間都存在。它主要存放靜態資料 全域性資料和常量。棧區 在執行函式時,函式內區域性變數的儲存單元都可以在...

記憶體的使用 棧區 堆區 靜態區 唯讀區

記憶體的使用感覺好亂啊,需要整理一下!於是參考c primer與網上資源,整理如下 一 綜述 記憶體中的棧區分配的是區域性變數和函式的引數值的空間,棧的生長方向是從高往低的 堆區是向上增長的用於分配程式設計師申請的記憶體空間 比如new 申請的動態記憶體 注意它與資料結構中的堆是兩回事,分配方式倒是...