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