C stdlib realloc() 函数
示例
增加分配的内存:
// 为若干项分配内存
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() 函数会改变一块内存的大小,并返回指向该内存块的指针。如果当前位置的内存不足,则该内存块将被移动到其他位置,并返回另一个指针。新分配的内存中的值是不可预测的。
realloc() 函数定义在 <stdlib.h> 头文件中。
要了解更多关于内存分配的知识,请参阅C 内存管理教程。
语法
realloc(void * ptr, size_t size);
size_t 数据类型为非负整数。
参数值
| 参数 | 描述 |
|---|---|
| ptr | 指定要重新分配的内存块。 |
| size | 指定新的内存块大小,以字节为单位。 |
技术细节
| 返回值: | 指向内存块的 void * 指针。 |
|---|

