C語言的「空指標」與「野指標」

2021-09-25 03:20:05 字數 648 閱讀 5311

空指標:

在c語言裡,泛型程式設計靠void型別來實現。即「一切皆空」,那麼void型別的指標,是不是大大的提供了某些方便!在使用void*型別的指標時應該注意一下問題:(型別轉換!)

1 #include

2 3 int main()

4 以上顯然是錯誤的!因為在強轉時,轉換的是指標型別而不是普通型別。應先解引用,再轉換!應該這樣寫:

1 #include

2 3 int main()

4 野指標:

所謂「野指標」,即指向乙個非法的或者已經銷毀的記憶體的指標,它存在於使用指標前於使用指標後!那麼以下提供兩種方式來避免野指標:

1 #include

2 #include

3 int main()

4 以上兩種情況,分別是使用指標之前與使用指標變數之後,都是不合理,不安全的!使用前,應先將指標置為空!,使用後應該將指標變數的位址值置為空,否則即野指標!!!

1 #include

2 #include

3 int main()

4 ~                                      

這裡還要注意malloc函式只能對堆區記憶體釋放,不可釋放棧區!棧區是自動釋放的!!!並且它返回的是void*型別!!!

空指標與野指標

首先什麼是空型別呢,空型別就是void,自然,空型別指標就是void void 可以指向任何型別物件的位址,表示這是乙個指標,和位址值有關,但不知道儲存在此位址上的物件的型別,所以在取空型別指標所指向的值的時候,應將空型別指標轉換為對應的指標型別 int a 10 char b a float c ...

空指標與野指標

野指標 不是null指標,是指向 垃圾 記憶體的指標。人們一般不會錯用null指標,因為用if語句很容易判斷。但是 野指標 是很危險的,if語句對它不起作用。野指標的成因主要有兩種 一 指標變數沒有被初始化。任何指標變數剛被建立時不會自動成為null指標,它的預設值是隨機的,它會亂指一氣。所以,指標...

野指標與空指標

一 空指標 空指標不指向任何物件,在檢視使用乙個指標之前可以首先檢查它是否為空。定義空指標 1 int p1 nullptr 等價於int p1 0 2int p2 0 直接將p2初始化為字母常量034 要包含 include 5 int p3 null 等價於int p3 0 1 null 在c中...