野指針 懸空指針和懸空引用


空懸指針是這樣一種指針:指針正常初始化,曾指向過一個正常的對象,但是對象銷毀了,該指針未置空,就成了懸空指針。

野指針是這樣一種指針:未初始化的指針,其指針內容為一個垃圾數。 (一般我們定義一個指針時會初始化為NULL或者直接指向所要指向的變量地址,但是如果我們沒有指向NULL或者變量地址就對指針進行使用,則指針指向的內存地址是隨機的)。存在野指針是一個嚴重的錯誤。

int main() {
    int *p; // 指針未初始化,此時 p 為野指針 
    int *pi = nullptr;

    {
        int i = 6;
        pi = &i; // 此時 pi 指向一個正常的地址
        *pi = 8; // ok
    }   

    *pi = 6; // 由於 pi 指向的變量 i 已經銷毀,此時 pi 即成了懸空指針

    return 0;
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM