C++面試(1)

1.new、delete、malloc、free關(guān)系

delete會調(diào)用對象的析構(gòu)函數(shù),和new對應(yīng)free只會釋放內(nèi)存,new調(diào)用構(gòu)造函數(shù)。malloc與free是C++/C語言的標(biāo)準(zhǔn)庫函數(shù),new/delete是C++的運(yùn)算符。它們都可用于申請動態(tài)內(nèi)存和釋放內(nèi)存。對于非內(nèi)部數(shù)據(jù)類型的對象而言,光用maloc/free無法滿足動態(tài)對象的要求。對象在創(chuàng)建的同時要自動執(zhí)行構(gòu)造函數(shù),對象在消亡之前要自動執(zhí)行析構(gòu)函數(shù)。由于malloc/free是庫函數(shù)而不是運(yùn)算符,不在編譯器控制權(quán)限之內(nèi),不能夠把執(zhí)行構(gòu)造函數(shù)和析構(gòu)函數(shù)的任務(wù)強(qiáng)加于malloc/free。因此C++語言需要一個能完成動態(tài)內(nèi)存分配和初始化工作的運(yùn)算符new,以及一個能完成清理與釋放內(nèi)存工作的運(yùn)算符delete。注意new/delete不是庫函數(shù)


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.C和C++的區(qū)別?C++的特性?面向?qū)ο缶幊痰暮锰帲?答:c++在c的基礎(chǔ)上增添類,C是一個結(jié)構(gòu)化語言,它的重...
    杰倫哎呦哎呦閱讀 10,016評論 0 45
  • 一、C語言基礎(chǔ) 1、struct 的內(nèi)存對齊和填充問題其實只要記住一個概念和三個原則就可以了: 一個概念:自然對齊...
    XDgbh閱讀 2,351評論 1 38
  • 搬運(yùn)自??途W(wǎng)大神總結(jié) extern關(guān)鍵字 extern修飾變量是個聲明,此變量/函數(shù)是在別處定義的,要在此處引用 ...
    leon4ever閱讀 3,928評論 0 9
  • struct與class的區(qū)別 C的struct與C++的class的區(qū)別:struct只是作為一種復(fù)雜數(shù)據(jù)類型定...
    geekzph閱讀 1,748評論 0 4
  • 《假如給我三天光明》拆書稿 每個人都會經(jīng)歷人生的苦難,在苦難來臨的時候,我們應(yīng)該怎...
    艾睿兒閱讀 322評論 1 1

友情鏈接更多精彩內(nèi)容