delete與free的區別

2021-06-28 15:12:18 字數 421 閱讀 2088

1.   delete用於釋放new分配的空間。

free用於釋放malloc分配的空間。

2.  delete 用於釋放new  分配的空間。

3.  delete 釋放空間時會呼叫相應物件的析構函式。

4.呼叫free之前需要檢查需要釋放的指標是否為空。

而呼叫delete則不需要。

5.兩者最好不要混用。

即new分配的空間最好不要用free來釋放。

malloc分配的空間最好不要用delete來釋放。

個人記法:

一長一短(單詞長度)。

即delete用來釋放new分配的空間。

free用來釋放malloc分配的空間。

補充:new在分配空間時會呼叫呼叫物件的建構函式,對物件進行初始化。

而malloc只是分配記憶體。

C 中free 與delete的區別

1 new delete是c 的操作符,而malloc free是c中的函式。2 new做兩件事,一是分配記憶體,二是呼叫類的建構函式 同樣,delete會呼叫類的析構函式和釋放記憶體。而malloc和free只是分配和釋放記憶體。3 new建立的是乙個物件,而malloc分配的是一塊記憶體 new...

delete與delete 的區別

c 告訴我們在 用 new 分配的單個物件的記憶體空間的時候用 delete,用 new 分配的一組物件的記憶體空間的時候用 delete。很多人注意到了這個問題,但是卻不清楚為什麼要這樣做,不這樣做行不行。關於 new 和 delete,其中又分為兩種情況 1 為基本資料型別分配和 空間 2 為自...

delete與delete 的區別

如果是基本型別陣列呼叫delete就可以刪除之,而乙個自定義的結構陣列,卻最好使用delete,為什麼?原因如下 y new 10 delete y 10個元素所佔的記憶體都會被釋放,但是 如果有析構函式的話,只有第乙個元素的析構函式被呼叫,其他9個元素的析構函式沒有被呼叫 如果 的析構函式裡面有記...