**
原型:extern void *malloc(unsigned int num_bytes);
標頭檔案:#include 或 #include (注意:alloc.h 與 malloc.h 的內容是完全一致的。)
功能:分配長度為num_bytes位元組的記憶體塊
說明:如果分配成功則返回指向被分配記憶體的指標,否則返回空指標null。
當記憶體不再使用時,應使用free()函式將記憶體塊釋放。
使用:int
*p;
p = (
int
*)
malloc
(
sizeof
(
int
) * 128);
//分配128個(可根據實際需要替換該數值)整型儲存單元,
//並將這128個連續的整型儲存單元的首位址儲存到指標變數p中
double
*pd = (
double
*)
malloc
(
sizeof
(
double
) * 12);
//分配12個double型儲存單元,
//並將首位址儲存到指標變數pd中
注意:malloc 函式返回的是 void * 型別,如果你寫成:p = malloc (sizeof(int)); 則程式無法通過編譯,報錯:「不能將 void* 賦值給 int * 型別變數」。所以必須通過 (int *) 來將強制轉換。
函式的實參為 sizeof(int) ,用於指明乙個整型資料需要的大小。如果你寫成:int* p = (int *) malloc (1);
**也能通過編譯,但事實上只分配了1個位元組大小的記憶體空間,當你往裡頭存入乙個整數,就會有3個位元組無家可歸,而直接「住進鄰居家」!造成的結果是後面的記憶體中原有資料內容全部被清空。
函式malloc 和calloc 介紹
函式malloc 和calloc 都可以用來動態分配記憶體空間,但兩者稍有區別。malloc 函式有乙個引數,即要分配的記憶體空間的大小 void malloc size t size calloc 函式有兩個引數,分別為元素的數目和每個元素的大小,這兩個引數的乘積就是要分配的記憶體空間的大小。vo...
關於malloc函式
關於malloc函式的筆記 1 當乙個程式另外需要一些記憶體時,它就呼叫malloc 函式,malloc從記憶體池中提取一塊合適的記憶體,並向該程式返回乙個指向這塊記憶體的指標。這塊記憶體此時並沒有以任何方式進行初始化。是指標指向的記憶體沒有初始化,不是指標沒有初始化。2 當一塊以前分配的記憶體不再...
malloc函式用法
void malloc int size 說明 malloc向系統申請分配size位元組的記憶體空間,返回型別為void 型別。int p p int malloc sizeof int 注意 1 因為malloc返回的是不確定型別的指標,所以返回之前必須經過型別強制轉換,否則編譯報錯,如 不能將v...