1. 程式人生 > >malloc/free 的使用要點

malloc/free 的使用要點

類型 void oid 連續 malloc 類型轉化 指針 集中 申請

函數malloc的原型如下:

void * malloc(size_t size);

用malloc申請一塊長度為length的整數類型的內存,程序如下:

  int *p = (int *)malloc(sizeof(int) * length);

我們應當把註意力集中在兩個要素上:“類型轉化”和“sizeof”。

malloc 返回值類型是void *,所以在調用malloc時要顯示ii地進行類型轉換,將void * 轉換成所需要的指針類型。

malloc 函數本身並不識別要申請的內存是什麽類型,它只關心內存的總字節數。

函數free 的原型如下:

  void free( void * memblock );

  為什麽free 函數不像malloc 函數那樣復雜呢?這是因為指針p的類型以及它所指的內存的容量事先都是知道的,語句free( p ) 能正確的釋放內存。如果p 是NULL指針,那麽free 對p 無論操作多少次都不會出問題。如果p 不是NULL指針,那麽free 對p 連續操作兩次就會導致程序錯誤。

malloc/free 的使用要點