C++中,在用delete或用free釋放p所指的內存后。應該馬上顯式地將p置為NULL,為什么?"以防下次使用p時發生錯誤。"為什么會發生錯誤?釋放到底是釋放了什么?
熱心網友
當你不置成 NULL,你無法判斷這個指針是否已經釋放了,當這樣干了之后以后使用時如下:if( p ) 使用 p就不會出現誤用已釋放指針的情況。否則會出現使用已釋放內存或重復釋放一個指針的問題。
C++中,在用delete或用free釋放p所指的內存后。應該馬上顯式地將p置為NULL,為什么?"以防下次使用p時發生錯誤。"為什么會發生錯誤?釋放到底是釋放了什么?
當你不置成 NULL,你無法判斷這個指針是否已經釋放了,當這樣干了之后以后使用時如下:if( p ) 使用 p就不會出現誤用已釋放指針的情況。否則會出現使用已釋放內存或重復釋放一個指針的問題。