malloc
函數原型
void *malloc(size_t size); //向系統申請分配指定size個字節的內存空間,size是一個無符號數 //返回類型爲void*,表示不肯定返回類型的指針。也就是說,返回 類型的指針能夠被強制轉換成任意類型的指針。
頭文件
#include<malloc.h>或者 #include<stdlib.h>
calloc
函數原型
void *calloc(size_t n, size_t size); //在內存的動態存儲區域區中分配n個長度爲size的連續存儲空間 //函數返回一個指向分配起始地址的指針,若是分配不成功,則 返回NULL
頭文件
#include<stdlib.h>或者 #include<malloc.h>calloc在動態分配完成後,自動初始化該內存空間爲0,而malloc並>不進行初始化,分配的內存中都是隨機的垃圾數據。函數
realloc
函數原型
extern void *realloc(void *mem_address, unsigned int newsize); //先判斷當前的指針是否有足夠的連續空間,若是有, //擴大mem_address指向的地址,而且將mem_address返回, //若是空間不夠,先按照newsize指定的大小分配空間, //將原有數據從頭至尾拷貝到新分配的內存區域, //然後釋放原來mem_address所指內存區域 //(注意:原來指針是自動釋放,不須要使用free), //同時返回新分配的內存區域的首地址。即從新分配存儲器塊的地址。頭文件
#include<stdlib.h>或者 #include<malloc.h>若是地址分配成功,則返回被分配內存的指針,不然返回空指針NULL指針