C 記憶體模型詳解和程式原始碼

2021-10-24 14:13:35 字數 1009 閱讀 1838

記憶體分割槽的意義:不同區存放不同的資料,賦予不同的生命週期,從而有更大的靈活性。

未執行程式占用兩個記憶體區域

**區

全域性區

程式原始碼:

#includeusing namespace std;

//全域性變數

int g_a = 10;

int g_b = 20;

//靜態變數

static int s_a = 10;

static int s_b = 20;

//全域性常量

const int c_a = 10;

const int c_b = 20;

int main()

結果如下:

程式執行後,才會使用棧區和堆區。

棧區

程式原始碼:

#includeusing namespace std;

int* fun1()

int main()

結果如下:堆區程式原始碼:

#includeusing namespace std;

int* fun1()

int main()

結果如下:

C 程式記憶體模型

區 存放函式體的二進位制 由作業系統進行管理的 全域性區 存放全域性變數和靜態變數以及常量 棧區 由編譯器自動分配釋放,存放函式的引數值,區域性變數等 堆區 由程式設計師分配和釋放,若程式設計師不釋放,程式結束時由作業系統 記憶體分割槽的意義 不同的區域存放的資料,賦予不同的生命週期,給我們更大的靈...

C語言記憶體模型詳解

second60 20180415 在c語言中,記憶體可分用五個部分 1.bss段 block started by symbol 用來存放程式中未初始化的全域性變數的記憶體區域。2.資料段 data segment 用來存放程式中已初始化的全域性變數的記憶體區域。3.段 text segment ...

c 程式的記憶體模型

記憶體分為四個區域,不同區域存放的資料賦予不同的生命週期,靈活程式設計 區 存放函式體的二進位制 由作業系統進行管理 全域性區 存放全域性變數以及常量,由作業系統釋放 棧區 存放函式的引數值,區域性變數,由編譯器自動分配釋放 堆區 由程式設計師分配和釋放,若程式設計師不釋放,程式結束時由作業系統 共...