C語言malloc()函數與calloc()函數的區別

函數malloc()和calloc()都可以用來動態分配內存空間,但兩者稍有區別。

malloc() 函數有一個參數,是需要分配空間的大小(單位是字節)


calloc()函數有兩個參數,第一個參數是元素的數目,第二個是每個元素的大小

如果調用成功,函數malloc()和函數calloc()都將返回所分配的內存空間的首地址。

函數malloc()和函數calloc()的主要區別是前者不能初始化所分配的內存空間,而後者能。

函數calloc()會將所分配的內存空間中的每一位都初始化爲零,也就是說,如果你是爲字符類型或整數類型的元素分配內存,那麼這些元素將保證會被初始化爲0;如果你是爲指針類型的元素分配內存,那麼這些元素通常會被初始化爲空指針;如果你爲實型數據分配內存,則這些元素會被初始化爲浮點型的零。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章