C 記憶體四區

2022-06-05 16:03:07 字數 557 閱讀 5262

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

1.**區:存放函式體的二進位制**,由作業系統進行管理

存放cpu執行的機器指令

**區是共享的,共享的目的是對於頻繁被執行的程式,只需要在記憶體中有乙份即可。

**區是唯讀的,使其唯讀的原因是防止程式意外的修改了它的意義,

2.全域性區:存放全域性變數,靜態變數和全域性常量(區域性常量在棧中) 

該區域的資料在程式結束後由作業系統是否

3.棧區:由編譯器自動分配釋放,存放函式的引數值,區域性變數等。

cout << *p << endl;//編譯器第一次保留

cout << *p << endl;//得到不正確的資料

int* tp()

結果

10

1504820192

4.堆區:由程式設計師分配和釋放,若程式設計師不釋放,程式結束的時候由作業系統自動**。

在c++中,主要利用new在堆區開闢記憶體

記憶體四區意義:

不同區域存放的資料,賦予不同的生命週期,給我們更大的靈活編譯。

C 記憶體四區

c語言中,記憶體分為四個區域,區,全域性區,棧區,堆區。我們寫的 會被編譯成機器語言存放在這個區域內。一般存放的是兩種型別的變數 全域性變數,靜態變數,常量。特點是由系統分配空間,直到程式結束才釋放。定義在函式體外面的變數是全域性變數 int func int a 0 這是乙個全域性變數 intma...

c語言記憶體四區( )

圖1 記憶體四區模型 流程說明 1 作業系統把物理硬碟 load到記憶體 2 作業系統把c 分成四個區 3 作業系統找到main函式入口執行 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方 式類似於資料結...

C語言記憶體四區

圖一 記憶體四區模型 流程說明 1 作業系統把物理硬碟 load到記憶體 2 作業系統把c 分成四個區 3 作業系統找到main函式入口執行 一 記憶體四區 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方...