野指標產生原因及解決辦法

2021-07-08 10:47:18 字數 434 閱讀 2298

原因

指標變數宣告時沒有被初始化。

解決辦法

指標宣告時初始化,可以是具體的位址值,也可讓它指向null。

原因

指標 p 被 free 或者 delete 之後,沒有置為 null。

解決辦法

指標指向的記憶體空間被釋放後指標應該指向null。

原因

指標操作超越了變數的作用範圍。

解決辦法

在變數的作用域結束前釋放掉變數的位址空間並且讓指標指向null。

「野指標」的解決方法也是程式設計規範的基本原則,平時使用指標時一定要避免產生「野指標」,在使用指標前一定要檢驗指標的合法性。

C語言 野指標形成的原因及解決辦法

指標p被free掉了,卻沒有將其置為null。free函式只是將指標所指向的記憶體釋放掉了,使得記憶體成為自由記憶體,但是並沒有把指標本身的內容清除掉,所以指標仍指向已經釋放的動態記憶體。這是很危險的。沒有及時初始化指標,在定義指標的時候一定要及時的初始化。比如 int p 我們一般都會這麼去定義乙...

記憶體碎片產生原因及解決辦法

記憶體碎片通常分為內部碎片和外部碎片 1.內部碎片是由於採用固定大小的記憶體分割槽,當乙個程序不能完全使用分給它的固定記憶體區域時就產生了內部碎片,通常內部碎片難以完全避免 2.外部碎片是由於某些未分配的連續記憶體區域太小,以至於不能滿足任意程序的記憶體分配請求,從而不能被程序利用的記憶體區域。現在...

C語言野指標的產生原因及避免辦法

見如下程式例項 include include int main printf p1 d,p1 d n p1,p1 if p1 null 目的 釋放p1 printf p1 d,p1 d n p1,p1 system pause return 0 程式執行結果為 p1 0,p1 2031188 p1...