relloc函数的用法例子
时间: 2024-09-11 14:10:49 浏览: 49
`realloc()`是C语言标准库中的内存管理函数,用于调整已经分配的动态内存大小。它可以在不丢失数据的情况下,改变先前由`malloc()`、`calloc()`或`realloc()`初始化的内存块的大小。
用法示例:
```c
#include <stdlib.h> // 包含realloc函数
int* array = malloc(10 * sizeof(int)); // 分配初始大小为10个整数的空间
// 现在假设我们想将数组扩大到15个元素
if (array != NULL) {
array = realloc(array, 15 * sizeof(int));
if (array == NULL) { // 如果内存分配失败,会返回NULL
printf("Memory reallocation failed.\n");
free(array); // 清理旧的内存
} else {
printf("Array resized to %d elements.\n", 15);
}
} else {
printf("Initial memory allocation failed.\n");
}
free(array); // 无论是否成功扩展,都记得释放原始内存
```
在这个例子中,如果内存扩展成功,`realloc()`会更新`array`指针指向新的更大内存区域,并保留原有的数据。如果无法扩展,`realloc()`会返回`NULL`,这时通常需要清理并释放原来的内存。
阅读全文