C++中使用delete進(jìn)行單個(gè)對(duì)象的析構(gòu)及內(nèi)存刪除,使用delete[]進(jìn)行對(duì)象數(shù)組的析構(gòu)及內(nèi)存刪除
記得某次友人層說過,delete[]在Windows平臺(tái)上都是用HeapFree來實(shí)現(xiàn)的,因此delete[]和delete來刪除對(duì)象數(shù)組時(shí)都是一樣的。之后我也參考過很多的內(nèi)存管理器及new/delete重載實(shí)現(xiàn),基本都是這個(gè)道理。
最近突然發(fā)現(xiàn),如果是對(duì)象數(shù)組的話,使用delete確實(shí)能刪除內(nèi)存,但是對(duì)象數(shù)組中的每個(gè)對(duì)象的析構(gòu)就不能被調(diào)用了。幸好平時(shí)一直都還是保持良好的C++習(xí)慣,一直使用delete[],并且使用new[]大部分是char類型,不需要析構(gòu)