C 速查手冊

11.4.10 free()

stdlib.h函數 (function) free() 用來做動態記憶體配置,釋放原先所建立指向的記憶體空間,使用 free() 須注意並非刪除原先記憶體空間的資料,也非將操作的指標 (pointer) 變數改為指向 NULL ,而是告訴作業系統,程式不會再去利用這塊記憶體空間。

通常有用 malloc()calloc()realloc() 配置過記憶體空間,不需繼續使用的話就會以 free() 釋放

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main(void)
{
    char *tPtr;
    
    tPtr = malloc(40);
    if (tPtr == NULL) {
        printf("建立記憶體區域失敗...\n");
        exit(1);
    }
    
    strcpy(tPtr, "Actions speak louder than words.");
    printf("tPtr: %p\n", tPtr);
    
    free(tPtr);
    printf("tPtr: %p\n", tPtr);
    
    return 0;
}

/* 《程式語言教學誌》的範例程式
    http://kaiching.org/
    檔名:cfree.c
    功能:示範 stdlib.h 中函數 free() 的使用
    作者:張凱慶 */

編譯後執行,結果如下

$ gcc cfree.c
$ a.out
tPtr: 0x7fb65ac02980
tPtr: 0x7fb65ac02980
$

上一頁 11.4.9 realloc()
回 C 速查手冊 - 標準程式庫分類索引
下一頁 11.4.10 abort()
回 C 速查手冊 - 標準程式庫導覽
回 C 速查手冊首頁
回 C 教材首頁
回程式語言教材首頁