c6011取消对null指针的引用_C++中的野指针及其规避方法
生活随笔
收集整理的這篇文章主要介紹了
c6011取消对null指针的引用_C++中的野指针及其规避方法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
今天在調(diào)試程序過(guò)程中,用到了一些指針的方法,這里記錄一下野指針的概念。
1.概念
野指針,也就是指向不可用內(nèi)存區(qū)域的指針。通常對(duì)這種指針進(jìn)行操作的話,將會(huì)使程序發(fā)生不可預(yù)知的錯(cuò)誤。
野指針與空指針(NULL)不同,空指針在C語(yǔ)言中定義為
define NULL ((void *)0)
可見空指針指向0地址,而野指針指向不確定的地方。
2.產(chǎn)生原因
野指針產(chǎn)生主要有兩個(gè)原因:
1)指針變量未初始化:任何指針變量剛被創(chuàng)建時(shí)不會(huì)自動(dòng)成為NULL指針,它的缺省值是隨機(jī)的,它會(huì)亂指一氣。
2)指針釋放之后未置空:有時(shí)指針在free或delete后未賦值 NULL,便會(huì)使人以為是合法的。別看free和delete的名字(尤其是delete),它們只是把指針?biāo)傅膬?nèi)存給釋放掉,但并沒(méi)有把指針刪除。
3.規(guī)避方法
產(chǎn)生野指針以上面第一個(gè)原因居多,可以按照以下使用習(xí)慣避免:
- 定義指針后初始化為NULL;
- 使用前制定一個(gè)可用地址;
- 引用之前判斷是否為NULL;
- 使用完后賦值為NULL
總結(jié)
以上是生活随笔為你收集整理的c6011取消对null指针的引用_C++中的野指针及其规避方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: everythingtoolbar.dl
- 下一篇: mysql字符串区分大小写么_mysql