C如何判斷指標是否指向有效的物件

2021-08-09 07:05:25 字數 1241 閱讀 6531

1樓:

可以在通過一個指標刪除任何一個物件後,都把這個指標置成null。

另外,還沒有指向任何物件的指標也把它初始化成null。

這樣,就可以:

if(p)

else

在宣告瞭指標變數以後,就可以利用該指標變數來對所指向的物件進行操縱,當然在進行操縱前必須保證所操縱的物件是有效的,即該指標不為空,否則會引起“記憶體訪問衝突”的錯誤,導致程式崩潰。

判斷一個指標是否有效的辦法是判斷它是否為空指標:

else然而這樣的判斷方法需要有一個前提保證的,即是前面所說的在宣告指標時如果沒有明確指向一個已知的變數,則將其置空,在不再需要使用這個指標時也將其置空。如果該指標指向一塊動態分配的記憶體空間,在釋放後也應該將其置空。在這個前提下,前面判斷才是正確的

2樓:環琇瑩

判斷一個指標是否有效的辦法是判斷它是否為空指標:

else然而這樣的判斷方法需要有一個前提保證的,即是前面所說的在宣告指標時如果沒有明確指向一個已知的變數,則將其置空,在不再需要使用這個指標時也將其置空。如果該指標指向一塊動態分配的記憶體空間,在釋放後也應該將其置空。在這個前提下,前面判斷才是正確的

c++中如何判斷一個物件是否屬於某個類?

3樓:雨厚天勤

解決**如下:

c++ 中62616964757a686964616fe58685e5aeb931333365646334

base * p=new a();

base* is = dynamic_cast(p);

return is ? true : false;

類宣告如下:  class father;    class child : public father;    然後在某處這樣寫:

 father *apinstance[2];//a是array的縮寫,p是pointer的縮寫,變數名叫instance。

c++如何判斷兩個物件是否是同一個物件?判斷兩個物件的地址可以嗎?

4樓:

地址相同自然是同一個物件了

自定義類你可以過載operator ==啊

5樓:倒黴熊

不明白,你這裡說的相同是指相等呢

6樓:匿名使用者

可以用auto_ptr儲存一個物件,則這個物件是唯一的,就不用判斷了。

如何將c中的指標指向string類的其中某字元

1 string類成員函式c str 的原型 const char c str const 返回一個以null終止的c字串 2 c str 函式返回一個指向正規c字串的指標,內容和string類的本身物件是一樣的,通過string類的c str 函式能夠把string物件轉換成c中的字串的樣式 3 ...

如何定義指向函式的指標

一 定義一個函式指標的方法如下 返回值型別 指標變數名 形參列表 1 int func int x 宣告一個函式 2 int f int x 宣告一個函式指標 3 f func 將func函式的首地址賦給指標f 二 函式指標的用法 函式指標的應用 指標變數名 引數列表 如 int c ptr a,b...

c語言指標怎樣指向一段字串,C語言指標怎樣指向一段字串?

第五十六集 指標指向字串 將指標指向該字串的首地址即可。比如 char a abscdf char p a 將字串 abscdf 的首地址 即陣列名 賦值給指標p puts p 等價於puts a 也可以參考下面的示例程式 char p abscdf 在定義指標的時候,就使指標p指向該字串 首先s是...