系統中存在乙個記憶體管理器(mm,memory manager),它負責管理已退閒置記憶體。它被設計用於解決此類問題。
mm提供的服務:應用程式可以向mm申請(借出)一塊指定大小的記憶體,用完之後再釋放(還回)。
例如:
#include
void* ptr=malloc(1024);//申請,從mm借出記憶體
free(ptr);//釋放,還回mm
malloc函式:
free函式:
mm管理的記憶體區域稱為「堆」heap,相當於乙個倉庫。當用程式要malloc時,就從倉庫裡登記借出,當free時,就將這一塊內存放回倉庫。
C 基礎 動態分配記憶體 2
一.new與delete c 記憶體分配的兩種方式 靜態分配和動態分配 靜態分配是在編譯時分配相應的儲存空間,因為是在編譯時分配,要求編譯時空間大小明確,陣列長度必須為常量,一旦編譯完成,這個陣列的長度就是固定不變的。動態分配是程式執行期間根據實際需要動態申請或釋放記憶體。它不需要預先分配儲存空間,...
Linux 之動態分配記憶體方式
1 malloc free 函式 malloc 函式和free 函式是在堆中申請或釋放記憶體空間的,其函式宣告如下 include extern void malloc size t size extern void free void ptr malloc 函式在堆中申請分配乙個長度為 size位...
記憶體動態分配
陣列的元素儲存於記憶體中連續的位置上。當乙個陣列被宣告時,它所需要的內存在編譯時就被分配。但是,你也可以使用動態記憶體分配在執行時為它分配記憶體。malloc所分配的是一塊連續的記憶體。例如,如果請求它分配100個位元組的記憶體,那麼它實際分配的記憶體就是100個連續的位元組,並不會分開位於兩塊或多...