C 空懸指標 野指標

2021-09-21 14:49:22 字數 365 閱讀 2613

指向已經被釋放的記憶體 或者 指向已經被銷毀的物件。

情況一:

//變數c釋放,dp變成空懸指標

}情況二:

void func()

當free或者delete呼叫時,除了釋放動態申請的記憶體,還要將相關的指標指向null,避免出現空懸指標

情況三:

int * func ( void )

num是基於棧的變數,當func函式返回,變數的空間將被**,此時獲得的指標指向的空間有可能被覆蓋。

沒有初始化的(非靜態)指標就是野指標,一般情況下,編譯器會進行警告。

int func()

空懸指標和野指標

以前經常把這兩個概念混為一談,雖然這它們的概念類似,有一定的相似性,但是各自的成因和解決防範方法都是不同的,特記錄在此。乙個原生指標分配記憶體後,它並沒有探測記憶體是否已經被釋放或者被損壞的能力。當所管理的記憶體被釋放後,若這個指標沒有被銷毀或置為null,它就成了乙個空懸指標。可能會出現隨機的錯誤...

c 空指標,野指標

當給空指標所指的位址賦值時,會報錯 int p nullptr p 10 int p 野指標,未初始化int p new int delete p 刪除後不知道p指向 include using namespace std class a void a func void void test voi...

c 空指標和野指標

野指標不同於空指標,空指標是指乙個指標的值為null,而野指標的值並不為null,野指標會指向一段實際的記憶體,只是它指向 我們並不知情,或者是它所指向的記憶體空間已經被釋放,所以在實際使用的過程中,我們並不能通過指標判空去識別乙個指標是否為野指標。野指標可能指向乙個可用的,但是正在被使用的空間,如...