C语言野指针的问题
野指針的問題
- 野指針的問題
- 野指針概念
- 如何避免野指針
- NULL到底是什么
野指針的問題
野指針概念
、野指針就是指針指向的位置是不可知的(隨機的,不正確的,沒有明確限制的)
野指針很可能觸發運行時段錯誤(sgmentation fault)。
因為指針變量在定義時如果未初始化,值也是隨機的。指針變量的值其實就是別的變量的地址,所以意味著這個指針指向了一個地址是不確定的變量,這時候去解引用就是去訪問這個地址不確定的變量,所以結果是不可知的。
如何避免野指針
野指針的錯誤來源就是指針定義了以后沒有初始化,也沒有賦值,沒有明確指向一個可用的內存空間,然后就去解引用了。
避免野指針的方法:在指針的解引用之前,一定確保指針指向一個絕對可用的空間。
常規的做法是:
1.定義指針時,同時初始化為NULL.
2.在指針解引用之前,先去判斷這個指針是不是NULL。
3.在指針使用完之后,將其賦值為NULL。
4.在指針使用之前,將其賦值綁定一個可用地址你空間。
這四點防止野指針的方案絕對可行,在實踐中在中小型的程序中,自己的水平可以把握的時候,可以不必嚴格按照這個標準,但是在大型程序中,
總結
- 上一篇: 传祺gs8仪表盘出现m1s是什么意思
- 下一篇: C语言用位运算构建特定的二进制数