C和指標(8)動態記憶體分布

2021-06-27 06:13:30 字數 572 閱讀 7457

第十一章

(1)c函式庫提供了兩個函式,malloc和free,分別用於執行動態記憶體分配和釋放。它們都在stdlib.h中宣告。它們維護乙個可用記憶體池。當乙個程式設計師另外需要一些記憶體時,就呼叫malloc,它從記憶體池中提取一塊合適的記憶體,並向該程式返回乙個指向這塊記憶體的指標。這塊記憶體此時沒有被初始化。當一塊以前分配的記憶體不再使用時,呼叫free函式把它歸還給記憶體池。

(2)malloc的引數就是需要分配的記憶體位元組(字元)數。如果記憶體池中的可用記憶體可以滿足這個需求,malloc就返回乙個指向被分配的記憶體塊起始位置的指標。如果作業系統無法向malloc提供更多的記憶體,malloc就返回乙個null指標(null定義於stdio.h)。因此,對每個從malloc返回的指標都進行檢查,確保它並非null是非常重要的。

(3)malloc和calloc的區別:主要區別是calloc再返回指向記憶體的指標之前把它初始化為0.另外乙個較小的區別是它們請求記憶體數量的方式不同。calloc的引數包括所需元素的數量和每個元素的位元組數。根據這些值它能夠計算出總共需要分配的記憶體。

(4)realloc函式用於修改乙個原先已經分配的記憶體塊的大小。使用這個函式,你可以使一塊記憶體擴大或縮小。

c 指標和動態記憶體管理

c 中動態記憶體的管理主要是使用new delete表示式和std allcator類。為了管理動態記憶體更加安全,c 11新標準庫推出了智慧型指標。new delete new完成的操作 1 它分配足夠儲存乙個特定型別物件的記憶體 2 為它剛才分配的記憶體中的那個物件設定初始值。對於內建型別物件,...

C和指標 動態記憶體分配

void malloc size t size 分配所需的記憶體空間,並返回乙個指向它的指標。記憶體塊的大小,以位元組為單位。void calloc unsigned int num,unsigned int size 功能 在記憶體的動態儲存區中分配num個長度為size的連續空間,函式返回乙個指...

C和指標詳解 動態記憶體分配

malloc和free malloc和free分別用於執行動態記憶體分配和釋放。這些函式維護乙個可用記憶體池。當乙個程式另外需要一些記憶體時,它就呼叫malloc函式,malloc從記憶體池中提取一塊合適的記憶體,並向該程式返回乙個指向這塊記憶體的指標。當一塊以前的記憶體不再使用時,程式呼叫free...