C++標準規定:delete空指針是合法的,沒有副作用。所以我們一般在delete後就以爲萬事大吉了,其實這是不安全的。
我們在Delete指針後賦值爲NULL或0是個好習慣。對一個非空指針delete後,若沒有賦NULL,若再次delete的話
有可能出現問題。如下代碼:
可以看出delete是釋放指針指向的內存,並不是指針本身所佔有的內存。所以delete後,指針的還是指向那塊區域,並
未清0,所以如果下次用到,就會發生xxx空間不能訪問的異常。
所以以後delete後要賦值爲空,這樣就不會產生一些不可預知的內存錯誤。