野指標:指向**不可預知。
這個」野指標」指向的記憶體空間,可能是某個重要的資料或其它程式,甚至是系統的重要記憶體位置. 再次訪問時造成的危害是不可預知的;容易被病毒或黑客攻擊. 在這個」野指標」指向的記憶體中放點「東西」, 你使用這個」野指標」時,自然中招.
避免方法:
1.建立乙個指標時, 位址指向明確位址或者null
2 釋放乙個指標後, 馬上把它置為空,下次用時再重新分配空間.
空指標:表示當前這個指標變數處於空閒狀態,沒有指向任何有意義的記憶體空間(指向0)。作業系統不會把任何資料放在0及其附近。int *p = null;
#define null ((void *)0) 把0強轉為位址0。
無型別指標void*:可以指向任何型別指標,可以做函式模板傳參,一般用於強制型別轉換。
野指標,空指標和無型別指標
一.野指標 所謂的野指標指的是乙個指標變數指向了不可使用的記憶體空間。產生野指標三個原因 1 指標變數建立時候沒有被初始化 任何指標變數在建立的時候,不會自動成為null指標,它的預設值是隨機的,因此該指標就會成為乙個野指標,可能指向一塊不可使用的記憶體空間。例如char p 這樣建立乙個指標p,指...
C 中野指標和空指標和無型別指標
一.野指標 所謂的野指標指的是乙個指標變數指向了不可使用的記憶體空間。產生野指標三個原因 1 指標變數建立時候沒有被初始化 任何指標變數在建立的時候,不會自動成為null指標,它的預設值是隨機的,因此該指標就會成為乙個野指標,可能指向一塊不可使用的記憶體空間。例如char p 這樣建立乙個指標p,指...
空指標和野指標
關於多次free 出現的野指標的原因 指標變數和指標變數所指的記憶體空間變數是兩個不同的概念 free 最主要釋放的指標變數所指的記憶體空間,因為記憶體資源是有限的,很寶貴,需要 利用 但是指標變數本身的值還是之前的指向,未重置成null 所以再次釋放的時候,指向了未知的記憶體區域,產生野指標 避免...