空指標和迷途指標的區別

2021-04-13 08:34:18 字數 612 閱讀 1344

解釋**:

#include

int main(){

int *pint = new int;

*pint=10;

cout<<*pint<

delete pint;

pint=0;

*pint=20;    // oh no, this was deleled.

cout<<*pint<

迷途指標也叫懸浮指標,失控指標,是對乙個指標delete後---這樣會釋放它所指向的記憶體---並沒有把它設定為空時產生的.而後,如果你沒有賦值就試圖再次使用該指標,引起的結果是不可預料的.

當delete乙個指標時,實際上僅是讓編譯器釋放記憶體,但指標本身依然存在。這時它就是乙個迷途指標。

當使用以下語句時,可以把迷途指標改為空指標:

myptr=0;

通常,如果在刪除乙個指標後又把它刪除了一次,程式就會變得非常不穩定,任何情況都有可能發生。但是如果你只是刪除了乙個空指標,則什麼事都不會發生,這樣做非常安全。

使用迷途指標或空指標(如myptr=0)是非法的,而且有可能造成程式崩潰。如果指標是空指標,儘管同樣是崩潰,但它同迷途指標造成的崩潰相比是一種可預料的崩潰。這樣除錯起來會方便的多。  

C new的使用 迷途指標和空指標的區別

參考 1.new 分配這種型別的n個大小的記憶體空間,並用預設建構函式來初始化這些變數 例子 include include using namespace std int main char p new char hello error分配乙個char 1位元組 的空間,用 hello 來初始化,...

迷途指標 new delete

程式設計中有一種很難發現的錯誤是迷途指標。迷途指標也叫懸浮指標 失控指標,是黨對乙個指標進行delete操作後 這樣會釋放它所指向的記憶體 並沒有把它設定為空時產生的。而後,如果你沒有重新賦值就試圖再次使用該指標,引起的結果是不可預料的。空指標和迷途指標的區別?當delete乙個指標的時候,實際上僅...

c 野指標(迷途指標)的理解

date 2018.12.16 直接上程式 include using namespace std int main int pint new int pint 10 cout pint迷途指標也叫懸浮指標,失控指標,是對乙個指標delete後 這樣會釋放它所指向的記憶體 並沒有把它設定為空時產生的...