malloc一定要free嗎 C語言編程時(shí)使用MALLOC后一直沒有用FREE函數(shù)釋放內(nèi)存空間怎么辦?
C語言編程時(shí)使用MALLOC后一直沒有用FREE函數(shù)釋放內(nèi)存空間怎么辦?如果不使用free釋放內(nèi)存,將導(dǎo)致內(nèi)存泄漏。隨著程序的運(yùn)行,程序占用的內(nèi)存越來越多,直到系統(tǒng)崩潰或程序結(jié)束。1. Free函數(shù):
C語言編程時(shí)使用MALLOC后一直沒有用FREE函數(shù)釋放內(nèi)存空間怎么辦?
如果不使用free釋放內(nèi)存,將導(dǎo)致內(nèi)存泄漏。隨著程序的運(yùn)行,程序占用的內(nèi)存越來越多,直到系統(tǒng)崩潰或程序結(jié)束。
1. Free函數(shù):
原型:void Free(void)*[PTR];
函數(shù):釋放malloc(或calloc,realloc)函數(shù)分配給指針變量的動(dòng)態(tài)內(nèi)存;
頭文件:malloc。H或stdlib。H、
2。為了避免釋放已釋放或未釋放的指針內(nèi)存,在C語言中定義指針時(shí),最好先賦null作為初始值,釋放后立即賦null,釋放釋放錯(cuò)誤時(shí)再檢查指針值并決定釋放,例如:
int*a=null
int*b=(int*)malloc(sizeof(int)*10)
a=b
/*經(jīng)過大量運(yùn)算后*/
if(a!=null){自由(a)a=null}
如果(b!=null){自由(b)b=null}