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個元素的析構函式沒有被呼叫 如果 的析構函式裡面有記...