c++中,程式所占用的記憶體分為以下:
<1>棧stack
由編譯器自動分配和釋放,主要存放區域性變數及函式引數
void main()
<2>堆heap
由程式設計師分配和釋放的動態記憶體,若在程式結束時被申請的記憶體未被手動釋放,則由編譯器自行**。malloc函式所申請的記憶體就是位於堆,由free釋放
void main()
<3>自由儲存區
c語言中沒有這個區,c++中,主要通過new操作符來申請位於自由儲存區的記憶體,由delete釋放
<4>全域性儲存區/靜態儲存區
顧名思義,就是用於存放全域性變數和靜態變數
int a = 10;//該變數為全域性變數,儲存於全域性儲存區中
void main()
<5>常量儲存區
用於儲存常量,const所修飾的常量就存放於此,不能被修改
記憶體四區筆記
include include include void print arr int buf,int n int main 棧中陣列 void malloc size t size char p1 malloc sizeof char 1000 free p1 int p malloc sizeof...
在C 中,記憶體分成5個區
在c 中,記憶體分成5個區,他們分別是堆 棧 自由儲存區 全域性 靜態儲存區和常量儲存區。棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數 函式引數等。堆,就是那些由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般乙個n...
c 中記憶體的四個區
在c 中,記憶體被劃分為四個區。區 靜態儲存區 堆和棧。1.區。顧名思義,存放程式 2.靜態儲存區。將程式中的靜態變數 全域性變數存放在此區域 3.堆。程式中,由程式設計師申請的記憶體空間 new malloc 空間的釋放一般也有程式設計師控制 乙個new對應乙個delete 當程式設計師沒有釋放該...