C 标准库 - <stdlib.h>

C 语言 realloc() 函数用于重新调整之前分配的内存块大小,保留原内容。

原型

void *realloc(void *ptr, size_t new_size);

扩大时新部分未初始化;缩小时尾部被丢弃。失败返回 NULL(原内存不变)。

参数

  • ptr - 原内存指针;
  • new_size - 新的大小(字节)。

示例

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

int main() {
    int *arr = (int *)malloc(3 * sizeof(int));
    arr[0] = 1; arr[1] = 2; arr[2] = 3;

    arr = (int *)realloc(arr, 5 * sizeof(int));
    arr[3] = 4; arr[4] = 5;
    for (int i = 0; i < 5; i++) printf("%d ", arr[i]);
    printf("\n");
    free(arr);
    return 0;
}

输出:

1 2 3 4 5

注意事项

建议用临时指针接收 realloc 结果,避免失败时丢失原指针。