FREE()函數的用法


  C語言中,malloc, alloc, free是c定義的一組內存管理的API函數,free可以釋放calloc, malloc, realloc動態分配的空間,當你調用malloc、alloc分配內存時,不僅僅是從堆里面分配得到了可用內存,實際上內存管理子系統還會維護了內存列表(你定義的普通指針不會出現這個列表中)。

      而對於使用new, GlobalAlloc之類的方式分配的內存可不可以使用free呢。我的回答是,盡量不要,大部分情況都會帶來風險,這里面涉及new, malloc, GlobalAlloc, HeapAlloc, LocalAlloc,VirtualAlloc等函數的區別。

      那么對於自己定義的普通指針呢,首先要說一下,你要釋放的不是你定義的指針,而是你定義的指針指向的空間。至於你定義的普通指針是不是可以通過free釋放,這個要看情況。如果你定義的指針指向動態分配的地址空間,則可以使用free釋放指針指向的這段空間;否則,就不能使用free釋放指針指向的空間。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM