C delete 和delete 的區別

2021-07-14 13:34:51 字數 872 閱讀 2357

臨睡前突然看到乙個問題,c++中 delete和delete 兩種運算子的區別?

帶著這個問題查了相關資料,並做了實驗。部分結果參考網上資料,感謝部落格:

漫步雲端

c++告訴我們在**用 new 分配的單個物件的記憶體空間的時候用 delete,**用 new 分配的一組物件的記憶體空間的時候用 delete。

關於 new 和 delete,其中又分為兩種情況:(1) 為基本資料型別分配和**空間;(2) 為自定義型別分配和**空間。

/*

vs2010 win10 64bit

*/#include "stdafx.h"

#include

using

namespace

std;

class t

~t()

};int _tmain(int argc, _tchar* argv)

執行結果:

delete 和delete針對簡單型別的資料結構可以通用,如陣列,單一變數

e.g.

char *p5 = new char[20];

delete p5;

但是如果針對自定義型別的資料結構如類、結構體、string等型別在**空間時就需要根據申請時使用的new和new對應的操作了。在vs平台下,如果對結構體使用了new而釋放是對應了delete,執行時會報錯。在其他編譯環境下,未必會報錯,導致只釋放了頭指標指向的空間,其他空間依然存在,會造成記憶體洩露的結果。

C delete與delete 的區別

c 中對new申請的記憶體釋放方式有delete和delect兩種方式,那這兩者到底有哪些區別呢?可能你見過這樣的表述 用new分配記憶體,就用delect釋放記憶體 使用new分配記憶體,就用delete釋放記憶體。具體來講就是delect釋放new分配的單個物件指標指向的記憶體,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 為基本資料型...