未初始化指針:在聲明指針時沒有對其進行初始化,導致指針指向一個未知的內存地址。
野指針:指針指向的內存已經釋放或者不再有效,但是仍然被用于訪問內存,可能導致程序崩潰。
懸空指針:指針指向的內存已經釋放,但是指針本身沒有被置為 nullptr 或者指向其他有效的內存地址,可能導致程序訪問無效內存。
內存泄漏:在使用 new 創建對象后,忘記使用 delete 釋放內存,導致內存泄漏。
使用未初始化的指針訪問成員:在使用指針訪問對象成員之前,沒有對指針指向的對象進行初始化。
類型轉換錯誤:將一個不同類型的指針賦值給類指針,可能導致類型轉換錯誤或者訪問非法內存。
多次釋放同一塊內存:在使用 delete 釋放內存后,又再次使用 delete 釋放同一塊內存,會導致程序崩潰。
內存越界訪問:在使用指針訪問數組或者其他數據結構時,沒有進行邊界檢查,可能導致越界訪問和內存錯誤。