C 速查手冊

11.4.9 realloc()

stdlib.h函數 (function) realloc() 用來做動態記憶體配置,可改變由 malloc()calloc()realloc() 所配置記憶體空間的大小,需要兩個參數 (parameter) ,第一個參數為指向原始空間的指標,第二個參數為新空間的大小。若調整成功, realloc() 回傳指向重新分配空間的指標 (pointer),否則回傳 NULL

以下程式利用函數 realloc() 擴充記憶體空間

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

int main(void)
{
    char *ptr;
    
    ptr = malloc(23);
    if (ptr == NULL) {
        printf("建立記憶體區域失敗...\n");
        exit(1);
    }
    strcpy(ptr, "History repeats itself.");

    ptr = realloc(ptr, 25);
    if(ptr == NULL) {
        printf("擴充記憶體區域失敗...\n");
        exit(1);
    }
    strcat(ptr, "\n");

    printf(ptr);
    free(ptr);

    return 0;
}

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

編譯後執行,結果如下

$ gcc crealloc.c
$ a.out
History repeats itself.
$

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