C程式記憶體分布

2021-10-07 08:33:35 字數 1217 閱讀 4152

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

2、堆區(heap):一般由程式設計師分配釋放,隨叫隨到,揮之即走。

3、全域性/靜態區(static):全域性變數和靜態變數的儲存是放在一起的,在程式編譯時分配。

4、文字常量區:存放常量字串。

5、程式**區:存放函式體(包括類的成員函式、全域性函式)的二進位制**。

具體**表示如下:

#include

#include

#include

int laoyezi =58;

//int girl = 17;

//1. 棧的記憶體

void

say_hello

(const

char

* msg)

else

printf

("老爺今年 %d 歲! \n"

, laoyezi);}

void

gui_fang

(int jiaren)

else

printf

("小姐今年 %d 歲! \n"

, girl);}

intmain

(void

) salary = new int

[num]

;for

(int i =

0; i < num; i++

)for

(int i =

0; i < num; i++

)printf

("-----over-----");

delete[

] salary;

//切記,delete 後的動態記憶體,禁止訪問

system

("pause");

return0;

}

今天學習了c程式的記憶體分布,知道了c程式的記憶體分割槽主要分5區分別是:**區、常量區、全域性資料區、堆區、棧區。

學習**監測系統之前要掌握相關的技術。

C 程式記憶體分布

程式中變數的記憶體分配方式 程式執行時需要占用多大的空間需要在編譯時確定,便於作業系統為程式分配適當的記憶體空間。從靜態儲存區分配 程式的全域性變數和靜態變數都在這裡分配,且在編譯時已經分配好,在程式終止前被作業系統 在棧上建立 在函式呼叫時,函式的形參和區域性變數都在棧上建立,函式執行完畢時這些記...

c程式的記憶體分布

一 c程式的記憶體分布 既然static是用來修飾變數和函式的,而變數和函式又是組成 c程式必不可少的,c程式的 記憶體分布圖如下。c 程式由下面5 部分組成 1 正文段 cpu 執行的機器指令部分 乙個程式只有乙個副本 唯讀,防止程式由於意外事故而修改自身指令 2 初始化資料段 資料段 在程式中所...

C程式的記憶體分布

目錄 1.c程式記憶體分布 2.示例詳解 2.1檢視記憶體分布 2.2未初始化全域性變數 2.3未初始化靜態變數 2.4已初始化靜態變數 2.5初始化全域性變數 乙個典型的c程式的記憶體布局包含下面幾個部分 1 text segment code segment 文字 段 2 initialized...