2016年4月5日:malloc,calloc,realloc,new函數的使用和區別

1) malloc 函數: void *malloc(unsigned int size)函數

     在內存的動態分配區域中分配一個長度爲size的連續空間,若是分配成功,則返回所分配內存空間的首地址,不然返回NULL,申請的內存不會進行初始化。內存

2)calloc 函數: void *calloc(unsigned int num, unsigned int size)變量

     按照所給的數據個數和數據類型所佔字節數,分配一個 num * size 連續的空間。隨機數

    calloc申請內存空間後,會自動初始化內存空間爲 0,可是malloc不會進行初始化,其內存空間存儲的是一些隨機數據。      
3)realloc 函數: void *realloc(void *ptr, unsigned int size)構造函數

    動態分配一個長度爲size的內存空間,並把內存空間的首地址賦值給ptr,把ptr內存空間調整爲size。數據類型

    申請的內存空間不會進行初始化。
   4)new是動態分配內存的運算符,自動計算須要分配的空間,在分配類類型的內存空間時,同時調用類的構造函數,對內存空 間進行初始化,即完成類的初始化工做。動態分配內置類型是否自動初始化取決於變量定義的位置,在函數體外定義的變量都初始化爲0,在函數體內定義的內置類 型變量都不進行初始化。call

相關文章
相關標籤/搜索