在C語言中,釋放動態(tài)分配的內(nèi)存通常使用free()
函數(shù)。動態(tài)分配的內(nèi)存通常是通過malloc()
、calloc()
或realloc()
函數(shù)分配的,要釋放這些內(nèi)存,只需將指向內(nèi)存塊的指針作為參數(shù)傳遞給free()
函數(shù)即可。
例如,假設(shè)我們有一個(gè)動態(tài)分配的整型數(shù)組,要釋放該數(shù)組所占用的內(nèi)存,可以這樣做:
int *arr = (int *)malloc(5 * sizeof(int)); // 分配一個(gè)包含5個(gè)整型元素的數(shù)組
// 使用arr數(shù)組
free(arr); // 釋放arr數(shù)組所占用的內(nèi)存
需要注意的是,一旦調(diào)用free()
函數(shù)釋放了內(nèi)存,該內(nèi)存就會被標(biāo)記為可用,但實(shí)際上內(nèi)存中的數(shù)據(jù)并沒有被刪除或清空,如果在釋放內(nèi)存后繼續(xù)訪問已釋放的內(nèi)存區(qū)域,會導(dǎo)致未定義行為。因此,在釋放內(nèi)存后最好將指針設(shè)置為NULL,以避免出現(xiàn)懸空指針的情況。