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...