c 回顧 記憶體管理機制

2021-09-25 09:00:09 字數 594 閱讀 3440

在這個模型中,我們將會把乙個 c++ 程式在執行的時候所佔據的記憶體空間,分成以下四個部分:

在 c++ 程式的記憶體空間中,我們在**中宣告的區域性變數,以及函式的形式引數,都儲存在棧區中——這部分內存在程式執行的時候會自動分配,而在不需要的時候也會自動釋放,並不需要程式設計師自己去手動維護。

而我們使用new運算子,或者 c 語言中的malloc函式進行動態記憶體分配之後,系統為我們劃分的記憶體空間,就來自於堆區。因為程式自己並不知道這些動態分配的記憶體到什麼時候會派不上用場,所以程式並不會對這部分已經分配的記憶體做任何處理。

對於全域性變數,以及我們的後續課程中要講到的靜態( static )變數,其儲存在記憶體中的全域性/靜態區( global/static )——全域性變數和靜態變數是儲存在同一塊記憶體空間中的。我們可以簡單地認為,程式啟動之後,全域性/靜態變數就儲存在這裡,而程式結束之後,對應的記憶體空間將會自動釋放。

最後是常量( constant )區——實際上在實際的程式中並不存在這樣乙個區域,這裡只是為了讓大家方便理解。我們可以簡單地認為,所有的常量(以const開頭)都存放在一起——這些區域不可釋放。

以上來自計蒜客 ?

記憶體管理機制

記憶體管理 jvm將記憶體分成三大主要區域 堆,棧,方法區,用來儲存資料。堆 堆中主要儲存引用型別物件,給成員變數分配空間。棧 jvm在執行程式時,在棧中會為每乙個方法都提供儲存空間叫棧幀,用來儲存方法中的區域性變數。方法區 用來儲存jvm載入的位元組碼檔案的資訊 類的資訊 包含類的方法,方法只有乙...

記憶體管理機制

記憶體管理是乙個作業系統必不可少 並且 非常重要的一環 linux 的成功 和它優秀的記憶體管理聯絡非常密切 因為乙個系統的高效性慾穩定性往往決定於它的記憶體管理機制 我項很多人吃過 dos 下 640k 的苦吧 前面我們介紹了 386 保護模式 從今天起我們將在此基礎上 分析 linux 的虛擬儲...

iOS 記憶體管理機制

學習要點 1.reference counting 引用計數機制 2.了解mrc apc和gc 3.autoreleasepool 執行機制 4.如何避免 retain cycle reference counting 引用計數機制 cocoa 上基本的記憶體管理機制就是引用計數,通過乙個 refe...