當前位置:編程學習大全網 - 編程軟體 - 野指針是如何產生的?

野指針是如何產生的?

野指針產生的原因:

指針定義時未被初始化:指針在被定義的時候,如果程序不對其進行初始化,它會隨機指向壹個區域,因為任意指針變量(除了static修飾的指針)它的默認值都是隨機的。

指針被釋放時沒有置空:在用malloc()開辟空間的時候,要檢查返回值是否為空,如果為空,則開辟失敗;如果不為空,則指針指向的是開辟的內存空間的首地址。指針指向的內存空間在用free()和delete釋放後,如果沒有對其進行置空或者其他賦值操作,就會成為壹個野指針。

指針操作超越變量作用域:不要返回指向棧內存的指針或者引用,因為棧內存在函數結束的時候會被釋放。

野指針的危害:

指針指向的內容已經無效,而指針沒有被置空,解引用壹個非空的無效指針是未被定義的行為,也就是說不壹定導致錯誤,野指針被定位到是哪裏出現問題,在哪裏指針就失效了,這就是不好查找錯誤的原因。

規避方法:

1、初始化指針的時候將其置為nullptr,之後對其操作。

2、釋放指針的時候將其置為nullptr。

  • 上一篇:怎麽編寫Python命令?
  • 下一篇:《祖孫三代,十人爭房》(五集視頻)txt全集下載
  • copyright 2024編程學習大全網