C語言裡,哪些變數是存放在堆裡,哪些是存放在棧裡

2021-03-10 19:53:12 字數 863 閱讀 7760

1樓:匿名使用者

在c/c++中,記憶體分成5個區,他們分別是堆、棧、自由儲存區、全域性/靜態儲存區和常量儲存區。內容

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

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

自由儲存區:就是那些由malloc等分配的記憶體塊,他和堆是十分相似的,不過它是用free來結束自己的生命的。

全域性儲存區(靜態儲存區):全域性變數和靜態變數的儲存是放在一塊的,初始化的全域性變數和靜態變數在一塊區域, 未初始化的全域性變數和未初始化的靜態變數在相鄰的另一塊區域。程式結束後有系統釋放。

常量儲存區:這是一塊比較特殊的儲存區,他們裡面存放的是常量,不允許修改。

希望對你有幫助

2樓:匿名使用者

放在堆裡的資料時管理員自己開闢空間和釋放空間,如,new 和malloc,而放在棧裡的資料時計算機自動分配記憶體和釋放的,如變數

c語言堆 棧各存放什麼資料 指標是放到棧裡面的 其他那些呢 。。

3樓:匿名使用者

一切區域性變bai

量都在堆疊裡du儲存,函式呼叫也在堆zhi棧裡保dao

存返回地址。指標如果也內是區域性變數,也在堆容棧裡分配的。還有程式運算時候也會用到堆疊。全域性變數和用記憶體分配函式分配的空間,則不是在堆疊裡分配。在程式的專門資料空間分配

4樓:匿名使用者

用很簡明的話告訴你 堆中放的是指標 棧中放的是資料

C 裡,物件存放在堆裡和存放在棧裡相比有什麼優勢嗎?什麼情況下該優先考慮存堆裡

樓上兩位回答都挺好的,我來總結下 第一,堆空間大,適合放陣列以及 類物件 系統自帶或自定義 第二,裡面的資料不會自動清空,這樣就可以利用指標來訪問,自動清空資料恰好是棧的優點 所有在使用的時候要辯證來用,如果是用指標來訪問,就用堆,千萬不能用棧 第三 效率低,因為堆空間大,所以相對來說效率會低一點第...

哪些食物不宜存放在冰箱

香蕉,米,面,咖 麵包不宜入冰 麵包在烘烤過程中,麵粉中的澱粉直鏈分部已經老化,這就是麵包產生彈性和柔軟結構的原因。隨著放置時間的延長,麵包中的支鏈澱粉分部的直鏈部分慢慢締合,而使柔軟的麵包逐漸變硬,這種現象叫 變陳 變陳 的速度與溫度有關。在低溫時 冷凍點以上 老化較快,而麵包放冰箱中,變硬的程度...

哪些食物不宜存放在冰箱中,哪些食物不宜存放在冰箱中

1.熱的食物絕對不能放入運轉著的電冰箱內。2.存放食物不宜過滿 過緊,要留有空隙,以利冷空氣對流,減輕機組負荷,延長使用壽命,節省電量。3.食物不可生熟混放在一起,以保持衛生。按食物存放時間 溫度要求,合理利用箱內空間,不要把食物直接放在蒸發器表面上,要放在器皿裡,以免凍結在蒸發器上,不便取出。4....