c++中delete前,判斷指針是否為0,有必要嗎?
有必要判斷pi = 0嗎?
if ( pi != 0 ) ? ? delete pi;
解答:
c++中,如果指針等于0的話,c++不會調(diào)用delete的。(因?yàn)閏++中隱式的進(jìn)行了判等)
如果顯示的判等,那么實(shí)際上這個測試會被執(zhí)行2次。
靜態(tài)與動態(tài)內(nèi)存分配的兩個主要區(qū)別:
1. 靜態(tài)對象是有名字的變量,直接對其進(jìn)行操作;動態(tài)對象是沒有名字的變量,通過指針間接地對它們進(jìn)行操作。
int *pia = new int (1024) 分配了一個沒有名字int類型的對象,對象初始值是1024。然后,表達(dá)式返回對象在內(nèi)存中的地址。
2. 靜態(tài)對象的分配和釋放由編譯器自動處理。動態(tài)對象的分配和釋放必須由程序員自己顯式管理。
|
posted on 2006-11-09 16:53
喬棟 閱讀(1977)
評論(0) 編輯 收藏 引用 所屬分類:
C++的健身房