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 结果,避免失败时丢失原指针。