一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

【C++】new 與 malloc

 精品唯居 2022-12-23 發(fā)布于北京

關(guān)于new,這一篇文章較好,較明白得解釋了operator new 和 new operator。

https://blog.csdn.net/nishisiyuetian/article/details/81702180

 

new和malloc的區(qū)別

 

new(這里是new operator)的功能是在堆區(qū)新建一個(gè)對(duì)象,并返回該對(duì)象的指針(類型是該對(duì)象類型)。new操作符在生成一個(gè)對(duì)象的時(shí)候一般分兩步,調(diào)用operator new0函數(shù)分配內(nèi)存(有的編譯器會(huì)在未重載operator new的時(shí)候用malloc實(shí)現(xiàn) operator new),然后再用構(gòu)造函數(shù)初始化對(duì)象。

所謂的【新建對(duì)象】的意思就是,將調(diào)用該類的構(gòu)造函數(shù),因?yàn)槿绻粯?gòu)造的話,就不能稱之為一個(gè)對(duì)象。同樣的,用delete去釋放一個(gè)堆區(qū)的對(duì)象,會(huì)調(diào)用該對(duì)象的析構(gòu)函數(shù)。

 

而malloc只是機(jī)械的分配一塊內(nèi)存(類型是void*),如果用mallco在堆區(qū)創(chuàng)建一個(gè)對(duì)象的話,是不會(huì)調(diào)用構(gòu)造函數(shù)的嚴(yán)格說(shuō)來(lái)用malloc不能算是新建了一個(gè)對(duì)象,只能說(shuō)是分配了一塊與該類對(duì)象匹配的內(nèi)存而已,與構(gòu)造函數(shù)無(wú)關(guān)。用free去釋放一個(gè)堆區(qū)的對(duì)象,當(dāng)然不會(huì)調(diào)用該對(duì)象的析構(gòu)函數(shù)。

  
參考鏈接:https://www.zhihu.com/question/30115922/answer/46860025
 
另外new內(nèi)存分配失敗時(shí),會(huì)拋出bac_alloc異常,它不會(huì)返回NULL;malloc分配內(nèi)存失敗時(shí)返回NULL。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    黄片免费观看一区二区| 久久亚洲午夜精品毛片| 中文字幕日韩无套内射| 99精品国产一区二区青青| 91超精品碰国产在线观看| 中文字幕人妻综合一区二区| 亚洲国产成人爱av在线播放下载| 精品欧美国产一二三区| 国产一级内射麻豆91| 欧美韩日在线观看一区| 欧美加勒比一区二区三区| 久久精品国产亚洲av久按摩 | 国产肥女老熟女激情视频一区 | 欧美不卡高清一区二区三区| 毛片在线观看免费日韩| 亚洲妇女作爱一区二区三区| 中文字字幕在线中文乱码二区| 91久久精品国产一区蜜臀| 国产精品色热综合在线| 日本加勒比在线播放一区| 欧美一二三区高清不卡| 日韩黄片大全免费在线看| 两性色午夜天堂免费视频| 亚洲国产天堂av成人在线播放| 日本福利写真在线观看| 日本免费一级黄色录像| 91精品国产综合久久不卡| 日本妇女高清一区二区三区| 亚洲黑人精品一区二区欧美| 插进她的身体里在线观看骚| 国产精品丝袜美腿一区二区| 日韩在线一区中文字幕| 欧美午夜色视频国产精品| 草草草草在线观看视频| 精品欧美国产一二三区| 日韩不卡一区二区在线| 五月激情五月天综合网| 欧美大黄片在线免费观看| 不卡一区二区高清视频| 欧美一本在线免费观看| 高清一区二区三区大伊香蕉|