在C語言中,動(dòng)態(tài)分配內(nèi)存用 malloc() 函數(shù),釋放內(nèi)存用 free() 函數(shù)。如下所示:
站在用戶的角度思考問題,與客戶深入溝通,找到靖邊網(wǎng)站設(shè)計(jì)與靖邊網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋靖邊地區(qū)。
int *p = (int*) malloc( sizeof(int) * 10 ); //分配10個(gè)int型的內(nèi)存空間free(p); //釋放內(nèi)存
在C++中,這兩個(gè)函數(shù)仍然可以使用,但是C++又新增了兩個(gè)關(guān)鍵字,new 和 delete:new 用來動(dòng)態(tài)分配內(nèi)存,delete 用來釋放內(nèi)存。
用 new 和 delete 分配內(nèi)存更加簡單:
int *p = new int; //分配1個(gè)int型的內(nèi)存空間delete p; //釋放內(nèi)存
new 操作符會(huì)根據(jù)后面的數(shù)據(jù)類型來推斷所需空間的大小。
如果希望分配一組連續(xù)的數(shù)據(jù),可以使用 new[]:
int *p = new int[10]; //分配10個(gè)int型的內(nèi)存空間delete[] p;
用 new[] 分配的內(nèi)存需要用 delete[] 釋放,它們是一一對(duì)應(yīng)的。
和 malloc() 一樣,new 也是在堆區(qū)分配內(nèi)存,必須手動(dòng)釋放,否則只能等到程序運(yùn)行結(jié)束由操作系統(tǒng)回收。為了避免內(nèi)存泄露,通常 new 和 delete、new[] 和 delete[] 操作符應(yīng)該成對(duì)出現(xiàn),并且不要和C語言中 malloc()、free() 一起混用。
https://www.ryw168.com/news/media/15116.html
https://www.ryw168.com/news/media/15118.html