迷途指針

在計算機編程領域中 ， 迷途指針 ， 或稱懸空指針 、 野指針 ， 指的是不指向任何合法的對象的指針 。 當所指向的對象被釋放或者收回 ， 但是對該指針沒有作任何的修改 ， 以至於該指針仍舊指向已經回收的內存地址 ， 此情況下該指針便稱迷途指針 。 若操作系統將這部分已經釋放的內存重新分配給另外一個進程 ， 而原來的程序重新引用現在的迷途指針 ， 則將產生無法預料的後果 。 因爲此時迷途指針所指向的內存現在包含的已經完全是不同的數據 。 通常來說 ， 若原來的程序繼續往迷途指針所指向的內存地址寫入數據 ， 這些和原來程序不相關的數據將被損壞 ， 進而導致不可預料的程序錯誤 。 這種類型的程序錯誤 ， 不容易找到問題的原因 ， 通常會導致記憶體區段錯誤 （ Linux系統中 ） 和一般保護錯誤 （ Windows系統中 ） 。 如果操作系統的內存分配器將已經被覆蓋的數據區域再分配 ， 就可能會影響系統的穩定性 。 某些編程語言允許未初始化的指針的存在 ， 而這類指針即爲野指針 。 野指針所導致的錯誤和迷途指針非常相似 ， 但野指針的問題更容易被發現 。