在C語言中,free()
函數用于釋放通過malloc()
、calloc()
或realloc()
函數分配的內存。它的使用方法如下:
free()
函數。free()
函數后,不再使用被釋放的內存。以下是一個使用free()
函數釋放內存的示例代碼:
#include <stdio.h>
#include <stdlib.h>
int main() {
// 分配內存
int* ptr = (int*)malloc(5 * sizeof(int));
if (ptr == NULL) {
printf("內存分配失敗\n");
return 1;
}
// 為內存賦值
for (int i = 0; i < 5; i++) {
ptr[i] = i + 1;
}
// 輸出內存的值
for (int i = 0; i < 5; i++) {
printf("%d ", ptr[i]);
}
printf("\n");
// 釋放內存
free(ptr);
ptr = NULL;
return 0;
}
在上面的示例中,首先使用malloc()
函數分配了一個包含 5 個整數的內存塊,并將其賦值給指針 ptr
。然后,使用for
循環為內存塊中的每個整數賦值。最后,使用free()
函數釋放了內存,并將指針 ptr
設置為 NULL
,以確保不會再對已釋放的內存進行訪問。
請注意,使用free()
函數之前,需要確保已經完成了對該內存的使用,并且該內存是通過 malloc()
、calloc()
或 realloc()
分配的。否則,釋放非動態分配的內存或重復釋放已釋放的內存可能會導致不可預測的行為。