realloc函数使用总结
realloc原型是extern void *realloc(void *mem_address, unsigned int newsize);
函數(shù)說(shuō)明
語(yǔ)法
指針名=(數(shù)據(jù)類型*)realloc(要改變內(nèi)存大小的指針名,新的大小)。
新的大小可大可小(但是要注意,如果新的大小小于原內(nèi)存大小,可能會(huì)導(dǎo)致數(shù)據(jù)丟失,慎用!)
頭文件
#include <stdlib.h> 有些編譯器需要#include <malloc.h>,在TC2.0中可以使用alloc.h頭文件
功能
先判斷當(dāng)前的指針是否有足夠的連續(xù)空間,如果有,擴(kuò)大mem_address指向的地址,并且將mem_address返回,如果空間不夠,先按照newsize指定的大小分配空間,將原有數(shù)據(jù)從頭到尾拷貝到新分配的內(nèi)存區(qū)域,而后釋放原來(lái)mem_address所指內(nèi)存區(qū)域(注意:原來(lái)指針是自動(dòng)釋放,不需要使用free),同時(shí)返回新分配的內(nèi)存區(qū)域的首地址。即重新分配存儲(chǔ)器塊的地址。
返回值
如果重新分配成功則返回指向被分配內(nèi)存的指針,否則返回空指針NULL。
注意
當(dāng)內(nèi)存不再使用時(shí),應(yīng)使用free()函數(shù)將內(nèi)存塊釋放。
相關(guān)函數(shù)
1
malloc、calloc、free、_alloca
應(yīng)用舉例
總結(jié)
以上是生活随笔為你收集整理的realloc函数使用总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 最详细的最小堆构建、插入、删除的过程图解
- 下一篇: 堆排序图片详解