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 * 指针。 |
---|