void * realloc(void * mem_address, unsigned int newsize)
先判斷當前指針是否有足夠的連續空間:函數
mem_address
指向的地址,返回mem_address
newsize
指定的大小分配空間,將原數據從頭至尾拷貝到新分配的內存區域,然後釋放原來的mem_address
所指內存區域(這是自動的),同時返回新分配內存區域的首地址。mem_address != NULL && newsize == 0
此時返回NULL
,原空間自動釋放。指針
mem_address != NULL && newsize != 0 // 且空間分配失敗
此時返回NULL
,原空間未釋放。code
mem_address == NULL && newsize != 0
此時至關於函數malloc
。內存
參數mem_address
必須是函數malloc
、calloc
或realloc
返回的地址。class
參數newsize
應當不小於原長。call