2013-11-22 72 views
0

有沒有關於c中基於區域的內存管理的任何文檔?而不使用任何庫(用於基於區域的內存管理)。在c中使用基於區域的內存管理c

當它教導如何分配區域,並將它們存儲任何數據結構(例如鏈表)在它和它們破壞其清理而不是釋放每個節點

+2

這種形式的內存管理在資源有限的嵌入式系統中很常見。實施小心謹慎的內務細節很簡單。使用'malloc()'分配大型池。根據需要將指針返回到池中。仔細追蹤一切。當池被清空時使用'free()'。但有些陷阱。在教室外面,我會尋找一個合適的圖書館,以利用他們關於尖銳邊緣在哪裏的經驗教訓。 – RBerteig

+0

這個服務的目的是什麼,它是針對大多數中/高級別程序設計的成語。 –

+1

您應該搜索「內存池」 – EvilTeach

回答

3

內存分配的存儲器中的整個數據結構的區域通常需要OS干預。用C語言編寫的用戶空間程序不能使用內存,除非它已經通過特定於平臺的方法(通常是一些虛擬內存空間擴展,如mmap()或brk)提供給它。 C將malloc()定義爲執行此操作的標準方法。你可以使用malloc()一個非常大的區域,並以任何你認爲合適的方式將它雕刻出來。完成後,您只需要釋放()一個區域。或者,您可以使用您的平臺特定方法獲取新內存,然後釋放該內存。