因?yàn)閒ree函數(shù)僅僅是告訴操作系統(tǒng),這一塊內(nèi)存被釋放了,可以用來(lái)作其它用途。但是,由于你沒有重新對(duì)這塊內(nèi)存進(jìn)行寫操作,所以內(nèi)存中的變量數(shù)值并沒有發(fā)生變化。所以輸出值不變。
創(chuàng)新互聯(lián)是一家專業(yè)提供椒江企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為椒江眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
通常建議,將這個(gè)p用完了也置NULL
struct LNode *addroot(struct LNode *_root)
{
struct LNode *p = NULL, *p2 = NULL;
if(_root == NULL)
{
_root = talloc();
dateget(_root);
}
else
{
for(p=_root; p-next != NULL; p=p-next)
;
p2 = talloc();
dateget(p2);
p-next = p2;
}
return _root;
}
======================================
???? for?
for(p=_root; p-next != NULL; p=p-next)
;
不可以的。
malloc, alloc, free是c定義的一組內(nèi)存管理的API函數(shù),當(dāng)你調(diào)用malloc、alloc分配內(nèi)存時(shí),不僅僅是從堆里面分配得到了可用內(nèi)存,實(shí)際上內(nèi)存管理子系統(tǒng)還會(huì)維護(hù)了內(nèi)存列表。你自己定義的指針不會(huì)在這個(gè)列表中的,所以free會(huì)出問(wèn)題的。
那么,使用new, GlobalAlloc之類的方式分配的內(nèi)存可不可以使用free呢。我的回答是,盡量不要,大部分情況都會(huì)帶來(lái)風(fēng)險(xiǎn)。這里面涉及new, malloc, GlobalAlloc, HeapAlloc, LocalAlloc,VirtualAlloc等函數(shù)的區(qū)別。
網(wǎng)頁(yè)題目:c語(yǔ)言free(n)函數(shù) c語(yǔ)言中free函數(shù)
瀏覽路徑:http://m.kartarina.com/article26/dodsijg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站排名、品牌網(wǎng)站設(shè)計(jì)、電子商務(wù)、、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)