日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

malloc与new,free与delete

發(fā)布時(shí)間:2024/9/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 malloc与new,free与delete 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
malloc,free是一種庫函數(shù),不能被重載,new和delete是運(yùn)算符,可以被重載 new和delete內(nèi)部都調(diào)用malloc和free函數(shù)
new的三種用法: 1.new,不可以被重載直接new一個(gè)對(duì)象T* ptr = new T();new一個(gè)對(duì)象時(shí)做了兩件事情 * 調(diào)用了operator new申請(qǐng)空間 * 調(diào)用了構(gòu)造函數(shù),如果括號(hào)中為空,會(huì)調(diào)用默認(rèn)構(gòu)造函數(shù)2.operator new,可以被重載重載形式:必須為void* operator new(size_t n, . . .); 行為類似于malloc,就是申請(qǐng)一段空間重載后new一個(gè)對(duì)象會(huì)調(diào)用這個(gè)函數(shù)3.placement new原地構(gòu)造一個(gè)對(duì)象,相當(dāng)于顯示調(diào)用構(gòu)造函數(shù)new (T*) T(args); 使用方式如下:A *pointer = (A*)malloc(sizeof(A));new(pointer)A(10);cout << pointer->i << endl;


delete:類似于new 會(huì)首先調(diào)用析構(gòu)函數(shù)析構(gòu),然后調(diào)用free()釋放空間 可以被重載,重載形式如下:void operator delete(void* ptr, . . .);
new[]: 首先調(diào)用operator new[]申請(qǐng)n段連續(xù)的T空間,然后會(huì)調(diào)用n次默認(rèn)構(gòu)造函數(shù),可以被重載 重載形式如下:void* operator new[](size_t n, . . .); 如果重載了此函數(shù),new[]會(huì)調(diào)用這個(gè)函數(shù)
delete[]: 與new[]配套使用,會(huì)先調(diào)用n次析構(gòu)函數(shù),然后再釋放空間,可以被重載 重載形式如下:void operator delete[](void* ptr, . . .); 如果重載了此函數(shù),delete[]會(huì)調(diào)用這個(gè)函數(shù)。
測(cè)試代碼:
#include
<iostream> using namespace std; class A { public:A() : i(1) { cout << "A default constructor" << endl; }A(int j) : i(j) { cout << "A constructor" << endl; }~A() { cout << "A destructor" << endl; }int i; };class B { public:B() : i(1) { cout << "B default constructor" << endl; }B(int j) : i(j) { cout << "B constructor" << endl; }~B() { cout << "B destructor" << endl; }void* operator new(size_t n){cout << "B my new" << endl;B* p = (B*)malloc(n);return p;}void* operator new[](size_t n){cout << "B my new[]" << endl;B* p = (B*)malloc(n * sizeof(B));return p;}void operator delete(void* ptr){cout << "B my delete" << endl;free(ptr);}void operator delete[](void* ptr){cout << "B my delete[]" << endl;free(ptr);}int i; };int main() {//---------------------------A---------------------------// A *ptr_A_1 = new A;cout << ptr_A_1->i << endl;delete ptr_A_1;cout << endl;A *ptr_A_2 = new A();cout << ptr_A_2->i << endl;delete ptr_A_2;cout << endl;A *ptr_A_3 = new A(2);cout << ptr_A_3->i << endl;delete ptr_A_3;cout << endl;A *ptr_A_4 = new A[3];auto p = ptr_A_4;for(int i = 0; i < 3; ++i) cout << (p + i)->i << " ";cout << endl;delete[] ptr_A_4;cout << endl;//------------------------B-------------------------// B *ptr_B_1 = new B;cout << ptr_B_1->i << endl;delete ptr_B_1;cout << endl;B *ptr_B_2 = new B();cout << ptr_B_2->i << endl;delete ptr_B_2;cout << endl;B *ptr_B_3 = new B(2);cout << ptr_B_3->i << endl;delete ptr_B_3;cout << endl;B *ptr_B_4 = new B[3];auto p1 = ptr_B_4;for(int i = 0; i < 3; ++i) cout << (p1 + i)->i << " ";cout << endl;delete[] ptr_B_4;cout << endl;return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/CoderZSL/p/8056656.html

總結(jié)

以上是生活随笔為你收集整理的malloc与new,free与delete的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人在线观看网 | 日本免费黄色片 | 极品国产在线 | 精品久久综合 | 欧美色交 | 日韩高清影院 | 黄色片网站在线 | 国产综合激情 | www.av免费 | 日本午夜影院 | 好看的av网址 | 日韩欧美一区二区三区免费观看 | 丰满大乳露双乳呻吟 | 自拍av在线 | 黄网在线观看视频 | 国产精品综合一区二区 | 91精品视频免费观看 | 亚洲视频在线播放 | 亚洲乱码在线观看 | 天天操天天爽天天射 | 国产精品一区二区久久毛片 | 欧美a级大片 | 爱久久视频 | 在线中文字幕av | 69堂视频| 一区二三区 | 中文字幕 自拍偷拍 | 先锋av网| 国产黄色一级网站 | 欧洲一区二区在线 | 一区二区三区久久久 | 日日免费视频 | 西欧free性满足hd老熟妇 | 国产福利精品视频 | 久久久久久久久久一级 | 性少妇videosexfreexxx片 | 亚洲日本国产 | 亚洲拍拍| 星空大象mv高清在线观看免费 | 国产精品久久精品三级 | 在线观看a网站 | 精品熟妇一区二区三区 | 国产99久久久国产精品免费看 | 国产毛片欧美毛片久久久 | 欧美性生活免费视频 | 插我舔内射18免费视频 | 欧美精品a区 | 孕妇丨91丨九色 | 自拍亚洲综合 | 日本精品一区二区 | 狼人精品一区二区三区在线 | 女~淫辱の触手3d动漫 | 黄色网页免费 | 97超碰碰| 中国黄色1级片 | 中文字幕天堂在线 | 中文字幕一区二区三区四区视频 | 一级片黄色的 | 麻豆久久久久久久 | 国模无码一区二区三区 | 伊人99 | 动漫精品一区二区三区 | 少妇视频在线播放 | 五月天天色| 亚洲午码 | 日韩欧美国产一区二区在线观看 | 欧美日韩视频网站 | 大黄网站在线观看 | 天天干,天天操,天天射 | 日日夜夜免费精品视频 | 欧美日韩精品一区二区在线观看 | 奇米影视网 | av中文字幕av | 成熟人妻av无码专区 | 老牛影视av一区二区在线观看 | 日韩二区三区 | 91久久久久久久久久久 | 国产精品一区二区三区免费观看 | 男人的天堂在线播放 | 成人在线a | 青青99| 成年人在线观看视频免费 | 亚洲AV无码乱码国产精品牛牛 | 国产精品九九九九九 | 成人免费视屏 | 日本三级网站在线观看 | 噜噜噜久久久 | 中文字幕va| 亚洲超丰满肉感bbw 悠悠av | 久久久久久国产精品免费免费 | 杂技xxx裸体xxxx欧美 | 亚洲欧美日韩激情 | 亚洲精品国产成人av在线 | 欧美人与禽zoz0性3d | 日韩精品人妻中文字幕 | 亚洲第九十九页 | 日本中文在线播放 | 欧美亚洲另类小说 | chien国产乱露脸对白 |