delete 和 delete 的區別

2021-06-23 00:02:26 字數 755 閱讀 9835

情景:今天在檢視別人寫的**時發現有類似如下**:

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...