記憶體中的劃分空間

2021-07-24 09:32:10 字數 417 閱讀 1799

計算機三大組成部分:cpu、記憶體、硬碟。

程式一旦執行進記憶體成為程序。記憶體給每乙個程序分配虛擬記憶體空間,叫程序虛擬位址空間(4gb),再對映到實際物理記憶體空間。

記憶體劃分為1gb的核心和3gb使用者空間。

其中3gb使用者空間又分為:1、棧空間  2、堆空間  3、全域性資料區  4、**段

1、棧空間:(特點:先進後出,系統管理)

存放區域性變數、函式引數、自動變數。

2、堆空間:(特點:先進先出,使用者管理)

malloc    ,calloc    ,ralloc

3、全域性資料區:

(1)bss:未初始化的全域性變數;

(2)ordata:常量;

(3)靜態資料區:初始化的全域性變數,static加修飾的變數。

4、**段:

放一些**。

記憶體虛擬位址空間的劃分空間

當我們編碼的時候我們的源程式一般都放在硬碟上,然後當我們使用這個程式時電腦就會在記憶體上執行這個程式,然而電腦記憶體資源是十分緊缺的,一般電腦記憶體都是4g,8g,2g。所以當我們執行程式時並不是直接在記憶體上執行,而是在記憶體產生的虛擬位址空間上先進行,該虛擬空間一般也是4g,8g.這就涉及到了虛...

C 中的記憶體劃分

在c 中,記憶體分成5個區,他們分別是堆 棧 自由儲存區 全域性 靜態儲存區和常量儲存區。棧 就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數 函式引數等。堆 就是那些由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般乙個n...

C 程式中的記憶體劃分

在c 中,記憶體分成5個區,他們分別是堆 棧 自由儲存區 全域性 靜態儲存區和常量儲存區。棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數 函式引數等。堆,就是那些由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般乙個n...