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