8 1重學C 之 記憶體分布模型 程式執行前

2022-09-09 08:42:11 字數 636 閱讀 4210

#includeusing namespace std;

/* 一 記憶體分割槽模型

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

1 **區

存放函式體的二進位制**,由os管理

2 全域性區

存放全域性變數、靜態變數、常量

3 棧區

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

4 堆區

由程式設計師分配和釋放,若程式設計師未釋放則程式結束時由os**

意義:不同區域的資料具有不同的生命週期,以靈活程式設計

*//*

1.1程式執行前

程式編譯後生成.exe可執行程式,在為執行該程式前**分為兩個區域:

**區共享、唯讀

全域性區該區域的資料在程式結束後由os釋放

*/// 2 全域性變數

int g_a = 10;

int g_b = 10;

// 4-2-2 const修飾的全域性變數(=全域性常量)

c 之記憶體模型

c 程式在執行時,將記憶體大方向劃分為4個區域 區 存放函式體的二進位制 由作業系統進行管理 你寫的 都轉化成二進位制 全域性區 存放全域性變數和靜態變數以及常量 棧區 由編譯器自動分配和釋放,存放函式的引數值,區域性變數等 堆區 由程式設計師分配和釋放,若程式設計師不釋放,程式結束時由作業系統 記...

C 之記憶體模型 記憶體區域

2.malloc calloc realloc底層實現原理 2.2 calloc底層實現原理 2.3 realloc底層實現原理 2.4 分配虛擬記憶體的細節 2.5 free函式實現原理 3.new delete底層實現 4.相關面試題 3.應用 1 棧上的分配極為簡單,移動一下棧指標而已。2 棧...

11 2 8重學C 之 靜態成員

include include includeusing namespace std 4.2 物件的初始化和清理 4.2.8 靜態成員 靜態成員變數 所有物件共享同乙份資料 在編譯階段分配記憶體 類內宣告,類外初始化 靜態成員函式 所有物件共享同一函式 靜態成員函式只能訪問靜態成員變數 class ...