1. 程式人生 > >堆與棧(非資料結構)

堆與棧(非資料結構)

棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數、函式引數等。

堆,就是那些由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般一個new就要對應一個delete。如果程式設計師沒有釋放掉,那麼在程式結束後,作業系統會自動回收。

每個程序所分配的棧空間通常很小,linux下可以用 ulimit -s 檢視,單位KB,測試了一臺linux 64bit 主機是8M

每個程序所分配的堆空間比較大,通常在G級

生長方向:對於堆來講,生長方向是向上的,也就是向著記憶體地址增加的方向;對於棧來講,它的生長方向是向下的,是向著記憶體地址減小的方向增長。