C++中delete函數(shù)的具體使用
在C++中delete函數(shù)用于回收new分配的內(nèi)存空間。
C++告訴我們?cè)诨厥沼?new 分配的單個(gè)對(duì)象的內(nèi)存空間的時(shí)候用 delete,回收用 new[] 分配的一組對(duì)象的內(nèi)存空間的時(shí)候用 delete[]。
關(guān)于 new[] 和 delete[],其中又分為兩種情況:(1) 為基本數(shù)據(jù)類型分配和回收空間;(2) 為自定義類型分配和回收空間。
在針對(duì)簡(jiǎn)單的基本數(shù)據(jù)類型,使用delete也可以回收 new[] 分配的一組對(duì)象的內(nèi)存空間,因?yàn)椋夯镜臄?shù)據(jù)類型對(duì)象沒(méi)有析構(gòu)函數(shù),并且new 在分配內(nèi)存時(shí)會(huì)記錄分配的空間大小,則delete時(shí)能正確釋放內(nèi)存,無(wú)需調(diào)用析構(gòu)函數(shù)釋放其余指針。因此兩種方式均可。
但是在對(duì)于自定義類型的時(shí)候,使用new[] 分配的一組對(duì)象的內(nèi)存空間最好還是要用delete[]回收。
例:
#include <iostream>; using namespace std; class T { public: T() { cout << "constructor" << endl; } ~T() { cout << "destructor" << endl; } }; int main() { const int NUM = 3; T* p1 = new T[NUM]; cout << p1 << endl; //輸出P1的地址 // delete[] p1; delete p1; T* p2 = new T[NUM]; cout << p2 << endl; //輸出P2的地址 delete[] p2; return 0; }
結(jié)果:
可以看到在使用delete回收p1時(shí),析構(gòu)函數(shù)只調(diào)用了一次,也就是p1[0]的析構(gòu)函數(shù),使用delete[]回收p2時(shí),析構(gòu)函數(shù)全部調(diào)用了。
所以如果在分配時(shí)使用new[],回收時(shí)最好用delete[]。
到此這篇關(guān)于C++中delete函數(shù)的具體使用的文章就介紹到這了,更多相關(guān)C++ delete函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++中string與int的相互轉(zhuǎn)換實(shí)現(xiàn)代碼
這篇文章主要介紹了C++中string與int的相互轉(zhuǎn)換實(shí)現(xiàn)代碼,需要的朋友可以參考下2017-05-0510行C++代碼實(shí)現(xiàn)高性能HTTP服務(wù)
這篇文章主要介紹了10行C++代碼如何實(shí)現(xiàn)高性能HTTP服務(wù),幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下2021-04-04Qt實(shí)現(xiàn)編寫(xiě)SMTP客戶端的示例詳解
這篇文章主要介紹了如何通過(guò)Qt實(shí)現(xiàn)編寫(xiě)SMTP客戶端,可以實(shí)現(xiàn)通過(guò)SMTP發(fā)送電子郵件(有文本,html,附件,內(nèi)聯(lián)文件等的MIME)。并支持SSL和SMTP身份驗(yàn)證,感興趣的可以學(xué)習(xí)一下2022-11-11C語(yǔ)言實(shí)現(xiàn)數(shù)獨(dú)輔助器(附源碼)
數(shù)獨(dú)是源自瑞士的一種數(shù)學(xué)游戲。是一種運(yùn)用紙、筆進(jìn)行演算的邏輯游戲。本文將利用C語(yǔ)言制作一個(gè)數(shù)獨(dú)輔助器,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-01-01C++ TensorflowLite模型驗(yàn)證的過(guò)程詳解
這篇文章給大家介紹了C++ TensorflowLite模型驗(yàn)證的過(guò)程,測(cè)試代碼,主要是RunInference()和read_file(),詳細(xì)操作過(guò)程跟隨小編一起看看吧2021-08-08斐波那契數(shù)列 優(yōu)化矩陣求法實(shí)例
斐波那契數(shù)列 優(yōu)化矩陣求法實(shí)例,需要的朋友可以參考一下2013-03-03