共用方式為


記憶體管理:框架配置

在框架上的配置會使用它的名稱從 「 堆疊框架 」 來設定每次呼叫函式時,最多。 堆疊框架是記憶體的暫時保存引數到函式,以及所定義的任何變數給函數區域。 框架變數通常稱為 「 自動 」 變數,因為編譯器會自動為其配置空間。

有兩個框架配置主要特徵。 首先,當您定義區域變數時,會配置足夠空間上的堆疊框架,來保留整個變數,即使是大型陣列或是資料結構。 第二,框架變數時會自動刪除超出範圍時會:

void MyFunction()
{
    // Local object created on the stack
    CString strName;
    // Object goes out of scope and is deleted as function ends
}

對於本機的函式的變數,如果巢狀的大括號用在函式結束,但框架變數的範圍可能小於函式時,就會發生這個領域的轉換。 框架變數這個自動刪除是非常重要的。 如果是簡單的基本型別 (例如int或位元組),陣列或資料結構,自動刪除只會回收變數使用的記憶體。 由於變數已經超出範圍而定,它不可能存取。 在 C++ 物件的情況下自動刪除的程序其實稍微複雜一點。

當物件定義為框架變數時,其建構函式會自動叫用在其中遇到定義點。 當物件超出領域範圍時,會回收物件的記憶體之前,會自動叫用其解構函式。 這種自動建構和解構時可能會非常方便,但您必須注意其自動呼叫,特別是,解構函式。

配置在框架上的物件的主要好處是會自動刪除。 當您配置您在框架上的物件時,您不必擔心遺忘物件導致記憶體遺漏。 (如記憶體遺漏的詳細資訊,請參閱文章以 MFC 偵測記憶體遺漏。)框架配置的缺點是框架變數不能使用其範圍之外。 在 [選擇框架配置或堆積配置的另一個因素是對於大型的結構和物件,因此最好堆積的堆疊而不是儲存使用由於堆疊空間會侷限。

請參閱

概念

記憶體管理