在c++中,正常的分配與釋放記憶體的對應方法如下:
newdelete
malloc
free
new [ ]
delete[ ]
delete 和delete[ ]的本質區別是:
1、當釋放的物件是資料p[n]時,用delete只會呼叫p[0]的析構函式,其他後續的物件的析構函式不會被呼叫,這就有可能導致問題。
2、當釋放的物件是資料p[n]時,用delete[ ]會在釋放p之前對p[0]......p[n-1]呼叫析構函式,再釋放自己。
注:如果p[n]中的物件型別是基本型別(沒有析構函式)則不會出現問題,如果是自定義型別,那麼將會導致一些記憶體相關問題。
C 中delete和delete 的區別
c 告訴我們在 用 new 分配的單個物件的記憶體空間的時候用 delete,用 new 分配的一組物件的記憶體空間的時候用 delete。很多人注意到了這個問題,但是卻不清楚為什麼要這樣做,不這樣做行不行。關於 new 和 delete,其中又分為兩種情況 1 為基本資料型別分配和 空間 2 為自...
C 中delete和delete 的區別
c 告訴我們在 用 new 分配的單個物件的記憶體空間的時候用 delete,用 new 分配的一組物件的記憶體空間的時候用 delete。很多人注意到了這個問題,但是卻不清楚為什麼要這樣做,不這樣做行不行。關於 new 和 delete,其中又分為兩種情況 1 為基本資料型別分配和 空間 2 為自...
C 中的delete和delete 區別
一直對c 中的delete和delete的區別不甚了解,今天遇到了,上網查了一下,得出了結論。做個備份,以免丟失。c 告訴我們在 用 new 分配的單個物件的記憶體空間的時候用 delete,用 new 分配的一組物件的記憶體空間的時候用 delete。關於 new 和 delete,其中又分為兩種...