C中什麼資料分配在棧上,那些資料分配在堆上

2021-03-03 20:48:06 字數 619 閱讀 8365

1樓:

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

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

2樓:手機使用者

動態的是分配在堆上的。普通的是分在棧上的。

c++中什麼資料分配在棧或堆中,new分配資料是在近堆還是遠堆中?

3樓:匿名使用者

1,棧: 存放區域性變數,函式呼叫引數,函式返回值,函式返回地址。由系統管理

2,堆: 程式執行時動態申請,new 和 malloc申請的記憶體就在堆上

花括號初始化,資料是分配到堆上還是棧上了

4樓:

c++中的類初始化的時候就有這樣的形式,所以c++乾脆把標準的內建類(即我們把int等也看作是個類)也當作一般類來對待,所以它的物件(即sum,a)的初始化就可以這麼做了。lz看一下essential c++裡就專門講過這個問題。

C 程式設計中記憶體分配形式是什麼

linux中,c 記憶體分配方式有三種 1 從靜態儲存區域分配。記憶體在程式編譯的時候就已經分配好,這塊記憶體在程式的整個執行期間都存在。例如全域性變數,static變數。2 在棧上建立。在執行函式時,函式內區域性變數的儲存單元都可以在棧上建立,函式執行結束時這些儲存單元自動被釋放。棧記憶體分配運算內建於處理器...

C中FileMode是個什麼型別的資料

一個列舉型別 c 檔案流filemode建立方式 open 是開啟現有檔案,如果檔案不存在則發生異常 create 是建立一個新檔案,如果已經存在則發生異常openorcreate 則是說嘗試開啟已經存在的檔案,如果還不存在就新建一個。通常這些資訊你在寫程式的時候,vs的智慧提示框中會跟你解釋的,仔...

看看C60中那些語法糖都幹了些什麼終結

yield 語句只能出現在 iterator 塊中,這種塊可作為方法 運算子或訪問器的主體實現。這類方法 運算子或訪問器的體受以下約束的控制。不允許不安全塊。方法 運算子或訪問器的引數不能是 ref 或 out。yield return 語句不能放在 try catch 塊中的任何位置。該語句可放在...