C 記憶體四區

2021-10-13 22:57:16 字數 638 閱讀 6163

c語言中,記憶體分為四個區域,**區,全域性區,棧區,堆區。

我們寫的**會被編譯成機器語言存放在這個區域內。

一般存放的是兩種型別的變數:全域性變數,靜態變數,常量。

特點是由系統分配空間,直到程式結束才釋放。

定義在函式體外面的變數是全域性變數

int

func()

int a =0;

// 這是乙個全域性變數

intmain()

static

int a; \\ 這是乙個靜態變數

const

int a =3;

//常量

"hello world"

// 常量

由系統自動分配釋放,存放函式的引數值,區域性變數等等

不要返回區域性變數的位址

int

*func()

intmain()

func() 函式結束後,p指向的位址被釋放,p也就成了野指標。這個時候解引用p很危險。

由程式設計師分配釋放,若不釋放,則程式結束後自動釋放。

主要針對new和malloc 申請的空間

C 記憶體四區

c 程式在執行時,將記憶體大方向劃分為4個區域 1.區 存放函式體的二進位制 由作業系統進行管理 存放cpu執行的機器指令 區是共享的,共享的目的是對於頻繁被執行的程式,只需要在記憶體中有乙份即可。區是唯讀的,使其唯讀的原因是防止程式意外的修改了它的意義,2.全域性區 存放全域性變數,靜態變數和全域...

c語言記憶體四區( )

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

C語言記憶體四區

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