野指標 空指標

im5437發表於2015-05-16

野指標就是不知道指向哪裡,或者說不知道指向的記憶體是否可以使用,一般都是剛剛宣告但沒有初始化的指標。

空指標不是指向常數0,只指向地址0,即NULL,其實換句話說,指標的本質就是地址嘛,空指標就是指標本身的值(地址)為0

空指標的作用是防止野指標的出現,因為我們不能知道野指標到底指向哪裡,所以我們也無法判斷一個指標是否是野指標,這樣很危險,但如果養成將指標初始化為空指標的習慣,我們就能判斷出這個指標是不是有效的(判斷是不是NULL就可以了)

通用指標一般都用在函式傳參,實現所謂的“多型”,但到函式裡面使用時,一般還是被轉換成具體型別的指標。

野指標錯誤原因及解決對策:

指標變數未初始化

任何指標變數剛被建立時不會自動成為NULL指標,它的預設值是隨機的,它會亂指一氣。所以,指標變數在建立的同時應當被初始化,要麼將指標設定為NULL,要麼讓它指向合法的記憶體。

指標釋放後之後未置空

有時指標在free或delete後未賦值 NULL,便會使人以為是合法的。別看free和delete的名字(尤其是delete),它們只是把指標所指的記憶體給釋放掉,但並沒有把指標本身幹掉。此時指標指向的就是“垃圾”記憶體。釋放後的指標應立即將指標置為NULL,防止產生“野指標”。

相關文章