情景:今天在檢視別人寫的**時發現有類似如下**:
printer_info_4 *info4; // printer_info_4是乙個普通的結構(即沒寫構造和析構等函式的純資料的struct)
info4 = (printer_info_4*) new byte[dwneeded];
delete info4; // 好奇這一句的寫法, 究竟是delete 還是delete 才對呢。。
經過我對delete 和delete的斷點發現,
voidoperatordelete(void *p )
可知,operator
delete
函式也呼叫operator
delete 來實現。。 也就是說delete 和delete 在沒有涉及到析構函式的時候.. 它們的行為是一樣的。。所以上面的一行寫成delete info4 也不會有記憶體洩露。
補充:classctest
{public:
inta[4];
public:
ctest()
{ cout <<"ctest()... " <
可知,用new 分配的還是得用delete 來釋放,,即使有時用delete能釋放內在不洩露,但是良好的習慣還是得養成。。
相關:注:本文沒有實際價值,純作好奇學習下。。
delete和delete 的區別
剛才在寫一段例子程式的時候,發現對於乙個指標型別的陣列t p,delete p和delete p的效果一樣。看了一下c primer和c programming language都沒有找到解釋,於是在網路上搜尋一下,發現了很好的解釋。整理一下 c 告訴我們在 用 new 分配的單個物件的記憶體空間的...
delete和delete 的區別
c 告訴我們在 用 new 分配的單個物件的記憶體空間的時候用 delete,用 new 分配的一組物件的記憶體空間的時候用 delete。樓主的這個問題提得很好。很多人注意到了這個問題,但是卻不清楚為什麼要這樣做,不這樣做行不行。關於 new 和 delete,其中又分為兩種情況 1 為基本資料型...
delete 和 delete 的區別
c 告訴我們在 用 new 分配的單個物件的記憶體空間的時候用 delete,用 new 分配的一組物件的記憶體空間的時候用 delete。關於 new 和 delete,其中又分為兩種情況 1 為基本資料型別分配和 空間 2 為自定義型別分配和 空間。對於 1 上面提供的程式已經證明了 delet...