realloc

来自cppreference.com
< c‎ | memory
在头文件 <stdlib.h> 中定义
void *realloc( void *ptr, size_t new_size );

重新分配给定的内存区域。该区域必须之前曾被malloc()calloc()realloc()所分配并且未被free()所释放,否则,其结果是未定义的。

重新分配以下面两者之一完成:

a) 扩大或收缩目前ptr所指向的区域,若可能的话。区域中的内容保持不变,直至到达新旧大小中较小的一个。如果区域被扩大,数组中新部分的内容是未定义的。
b) 分配一个新的new_size字节大的内存块,将和新旧大小中较小的一个一样大的内存区域复制过来,并释放旧的块。

如果内存不足,旧的内存块不会被释放并且返回空指针。

目录

[编辑] 参数

ptr - 指向要被重新分配的内存区域
new_size - 数组新的大小

[编辑] 返回值

指向新分配的内存开始位置的指针,或者在错误发生时为NULL。该指针必须用free()释放。

[编辑] 示例

[编辑] 参见

C++ documentation for realloc