C stdlib realloc() 函数

定义和用法

realloc() 函数更改内存块的大小,并返回指向该内存块的指针。

如果当前位置没有足够的内存,则内存块将被移动到不同的位置,并返回一个不同的指针。新分配内存中的值是不可预测的。

realloc() 函数定义在 <stdlib.h> 头文件中。

另请参阅:C 语言内存管理

实例

增加已分配内存:

// 为一定数量的项目分配内存
int numItems = 10;
int *myArray = malloc(numItems * sizeof(int));

// 向内存中写入数据
for(int i = 0; i < numItems; i++) {
  myArray[i] = i + 1;
}

// 重新分配内存
numItems = 20;
myArray = realloc(myArray, numItems * sizeof(int));

// 显示内存中的内容
for(int i = 0; i < numItems; i++) {
  printf("%d ", myArray[i]);
}

// 释放内存
free(myArray);
myArray = NULL;

亲自试一试

语法

realloc(void * ptr, size_t size);

size_t 数据类型是一个非负整数。

参数

参数 描述
ptr 指定要重新分配的内存块。
size 指定内存块的新大小(以字节为单位)。

技术细节

返回: 指向内存块的 void * 指针。