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