全域性物件在程式啟動時分配,在程式結束時銷毀;區域性自動物件,進入其定義所在的程式塊時被建立,在離開塊時銷毀;每個程式擁有三個記憶體塊:靜態記憶體、棧、堆。區域性static物件在第一次使用前分配,在程式結束時銷毀。
分配在靜態記憶體和棧中的物件由編譯器自動建立和銷毀。對於棧物件,僅在其定義的程式塊執行時才存在;static在使用前分配,在程式結束時銷毀。參考文章:注意:
我們口中講的堆疊就是棧,而不是堆。堆的英文是heap ;棧的英文是stack(也翻譯為堆疊)。
[1] c++動態記憶體管理
[2]
12 c 動態記憶體
靜態記憶體 儲存 static資料 和 全域性變數 等 棧記憶體 儲存區域性變數 堆記憶體 動態記憶體 程式執行時分配的物件 c 動態記憶體管理使用 new 分配,delete 刪除 c 提供了兩種智慧型指標 行為像指標的類 可以安全的管理動態分配的記憶體,即使出現異常智慧型指標也能安全的釋放記憶體...
c 之動態記憶體
了解動態記憶體在 c 中是如何工作的是成為一名合格的 c 程式設計師必不可少的。c 程式中的記憶體分為兩個部分 很多時候,您無法提前預知需要多少記憶體來儲存某個定義變數中的特定資訊,所需記憶體的大小需要在執行時才能確定。在 c 中,您可以使用特殊的運算子為給定型別的變數在執行時分配堆內的記憶體,這會...
C 回顧之動態記憶體
每個程式的記憶體空間 靜態記憶體 區域性static物件,類static資料成員以及定義在函式體外的變數 棧記憶體 函式內的非static變數 堆 動態分配 程式在執行時分配的物件,生存期由程式控制 shared ptr的使用 也可以使用auto shared ptr p make shared 1...