无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

C語言內(nèi)存管理

2022-05-14 14:53 作者:信盈達  | 我要投稿

一:相關(guān)動態(tài)內(nèi)存函數(shù)

(1)malloc和free

free用于釋放mallco開辟的空間,malloc和free要成對使用,開辟的空間如果不使用了,一定要將其free掉,如果不free掉,堆區(qū)空間會越擠越大的(除非程序直接結(jié)束)。

同時當(dāng)那個指針?biāo)缚臻gfree掉之后,由于指針其實還是已經(jīng)保存了那片空間的地址,這個行為是相當(dāng)危險的,因為找到指針就有可能會改變它,所以為了徹底斷絕他們的聯(lián)系,在free掉之后,要將指針置為NULL。

(2)calloc

calloc函數(shù)和malloc函數(shù)的作用相同,都是用來動態(tài)開辟的。calloc與malloc所不同的是地方是兩者參數(shù)格式不一樣,并且calloc在開辟的同時會將此空間初始化為0, 而malloc則為隨機值。

  • malloc情況

calloc語法格式為:

int* p=(int*) calloc(10,sizeof(int));


(3)realloc

在申請好空間后,如果發(fā)現(xiàn)申請的空間不合適,過大或者過小,就可以使用realloc來進行調(diào)整

比如下面的例子中申請了20個字節(jié)后發(fā)現(xiàn)空間不夠,然后重新調(diào)整

需要注意:realloc申請空間有兩種方式


在堆區(qū)重新調(diào)整空間必然會遇到兩種情況:

第一種原有的空間后面有足夠大的空間,那么申請時相當(dāng)于就在原有空間后面補上缺的部分,這樣其返回的仍然是原來空間的地址;

第二種原有的空間后面不夠大,realloc會重新找一片能完整存放的區(qū)域,然后把之前的內(nèi)容照搬賦值過來,并釋放先前空間


版權(quán)聲明:本文為CSDN博主「快樂江湖」的原創(chuàng)文章。如有侵權(quán),請聯(lián)系刪除。

原文鏈接:【C語言重點難點精講】C語言內(nèi)存管理_快樂江湖的博客-CSDN博客_c語言 內(nèi)存管理

C語言內(nèi)存管理的評論 (共 條)

分享到微博請遵守國家法律
于田县| 搜索| 水富县| 南通市| 邢台市| 普兰店市| 扎鲁特旗| 建德市| 资源县| 武邑县| 赤城县| 金平| 昌都县| 平陆县| 阳高县| 迁西县| 江华| 灵台县| 水城县| 五指山市| 新建县| 苏尼特右旗| 怀安县| 抚宁县| 平度市| 三河市| 什邡市| 衢州市| 若羌县| 博罗县| 长子县| 青神县| 宝清县| 略阳县| 邵阳市| 司法| 泽州县| 三门峡市| 正定县| 铅山县| 延安市|