Friday, March 2, 2012

Dangling Pointer 迷途指標 vs 空指標

當delete一個指標的時候,實際上僅是讓編譯器釋放記憶體,但指標本身依然存在。這時
它就是一個迷途指標。

當使用以下敘述時,可以把迷途指標改為空指標:
MyPtr=0;

通常,如果在刪除一個指標後又把它刪除了一次,程式就會變得非常不穩定,任何情況
都有可能發生。但是如果你只是刪除了一個空指標,則什麼事都不會發生,這樣做非常
安全。

使用迷途指標或空指標(如MyPtr=0)是非法的,而且有可能造成程式當機。如果指標是
空指標,儘管同樣是當機,但它同迷途指標造成的當機相比是一種可預料的當機。這樣
除錯起來會方便得多。

(擷取自程式設計師面試寶典)



維基百科進一步解釋

.

No comments:

Post a Comment