函數malloc()和calloc()都可以用來動態分配內存空間,但兩者稍有區別。
malloc() 函數有一個參數,是需要分配空間的大小(單位是字節)
calloc()函數有兩個參數,第一個參數是元素的數目,第二個是每個元素的大小
如果調用成功,函數malloc()和函數calloc()都將返回所分配的內存空間的首地址。
函數malloc()和函數calloc()的主要區別是前者不能初始化所分配的內存空間,而後者能。
函數calloc()會將所分配的內存空間中的每一位都初始化爲零,也就是說,如果你是爲字符類型或整數類型的元素分配內存,那麼這些元素將保證會被初始化爲0;如果你是爲指針類型的元素分配內存,那麼這些元素通常會被初始化爲空指針;如果你爲實型數據分配內存,則這些元素會被初始化爲浮點型的零。