C 語言標準函數庫分類導覽 - stdlib.h realloc()

stdlib.h 的函數 realloc() 用來做動態記憶體配置,可改變由 malloc() calloc() 或 realloc() 所配置記憶體空間的大小,需要兩個參數,第一個參數為指向原始空間的指標,第二個參數為新空間的大小。若調整成功, realloc() 回傳指向重新分配空間的指標,否則回傳 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://pydoing.blogspot.com/
    檔名:crealloc.c
    功能:示範 stdlib.h 中函數 realloc() 的使用
    作者:張凱慶
    時間:西元2010年6月 */


編譯後執行,結果如下



您可以繼續參考


沒有留言: