malloc函數(shù)和free函數(shù)
|
[ 錄入者:tjzj | 時(shí)間:2008-10-25 17:35:02 | 作者: | 來源: | 瀏覽:238次 ] |
<<同江職教網(wǎng)歡迎你---累了聽會(huì)歌吧--奧運(yùn)主題歌 我和你>>
假設(shè)您的程序在執(zhí)行過程中需要分配一定量的內(nèi)存。您可以隨時(shí)調(diào)用malloc函數(shù)從堆中申請(qǐng)一塊內(nèi)存。在操作系統(tǒng)為您的程序預(yù)留出這塊內(nèi)存,之后您就可以隨意使用它了。用完之后,要使用free函數(shù)將這塊內(nèi)存返回給操作系統(tǒng)進(jìn)行回收。以后其他程序還可以按自己的需要預(yù)留這塊內(nèi)存。 作為例子,下面的代碼演示了最簡(jiǎn)單的使用堆的方法:
程序的開始調(diào)用了malloc函數(shù),這個(gè)函數(shù)做了三件事:
![]() 右邊的方框表示malloc分配的內(nèi)存塊。 接著程序用if (p==0)檢查指針p以確定分配申請(qǐng)成功(此行也可寫成if (p==NULL)甚至if (!p))。如果分配失?。╬等于零),則程序終止,否則程序?qū)⒎峙涞膬?nèi)存塊初始化為5,然后打印內(nèi)存塊的值,接著調(diào)用free函數(shù)將內(nèi)存塊返還給堆,最后退出。 前面的章節(jié)有一段代碼是將p賦值為一個(gè)現(xiàn)成整數(shù)i的地址,而本例中的代碼和那段代碼實(shí)際上并無不同。區(qū)別只是在于:對(duì)于變 |
聯(lián)系客服