函式malloc()和calloc()都可以用來動態分配記憶體空間,但兩者稍有區別。
malloc() 函式有乙個引數,是需要分配空間的大小(單位是位元組)
calloc()函式有兩個引數,第乙個引數是元素的數目,第二個是每個元素的大小
如果呼叫成功,函式malloc()和函式calloc()都將返回所分配的記憶體空間的首位址。
函式malloc()和函式calloc()的主要區別是前者不能初始化所分配的記憶體空間,而後者能。
函式calloc()會將所分配的記憶體空間中的每一位都初始化為零,也就是說,如果你是為字元型別或整數型別的元素分配記憶體,那麼這些元素將保證會被初始化為0;如果你是為指標型別的元素分配記憶體,那麼這些元素通常會被初始化為空指標;如果你為實型資料分配記憶體,則這些元素會被初始化為浮點型的零。
int
main()
int
main
(void
)sprintf
(a,"%s"
,"helloworld\n");
//"helloworld\n"寫入a指向的位址
printf
("%s\n"
,a);
//輸出使用者輸入的資料
free
(a);
//釋放掉使用的記憶體位址
return0;
//例2有無記憶體洩露?
}
malloc 和 calloc 的區別
void calloc size t num elements,size t element size void malloc size t size calloc和malloc都用於分配記憶體。1.malloc函式 malloc函式可以從堆上獲得指定位元組的記憶體空間,其函式宣告如下 void m...
malloc和calloc的區別
函式 malloc 和calloc 都可以用來動態分配記憶體空間 但兩者稍有區別。malloc 函式有乙個引數 即要分配的記憶體空間的大小 void malloc size t size calloc 函式有兩個引數 分別為元素的數目和每個元素的大小 這兩個引數的乘積就是要分配的記憶體空間的大小。v...
malloc 和calloc 的區別
malloc 和calloc 的區別 1 函式引數 函式malloc 和calloc 都可以用來動態分配記憶體空間,但兩者稍有區別。malloc 函式有乙個引數,即要分配的記憶體空間的大小 void malloc size t size calloc 函式有兩個引數,分別為元素的數目和每個元素的大小...