realloc函数
概要:
#include <stdlib.h> void *realloc(void *ptr, size_t size);
描述:
该函数释放参数ptr指向的旧对象,并返回一个指向具有参数size指定大小的新对象的指针。如果新分配的内存不大于原先内存,新内存的内容与原先内存的内容相同;如果新分配的内存大于原先内存,超出部分的内容是不确定的。
如果参数ptr是空指针,realloc函数将像malloc函数一样分配指定大小的内存。如果参数ptr不能匹配先前内存管理函数返回的指针,或者如果参数ptr指向的内存已经被释放,函数行为是未定义的。
如果参数size是非0值,并且未给新对象分配内存,则不会释放旧对象的内存。如果参数size是0,并且未给新对象分配内存,是否释放旧对象的内存将由实现定义。如果旧对象未被释放,其值应保持不变。
参数:
void *ptr
指向原先分配内存的指针。
size_t size
指定新分配内存大小的size_t类型整数。
返回值:
函数返回一个指向新对象的指针(它可能与指向旧对象的指针具有相同的值。);如果新对象的内存未能分配,函数返回一个空指针。
范例:
|
|
结果:
假设输入为:
100
It is hard to fail, but it is worse never to have tried to succeed.
-Theodore Roosevelt
将输出:
It is hard to fail, but it is worse never to have tried to succeed. -Theodore Roosevelt
相关内容:
aligned_alloc | 分配对齐方式和大小都指定的内存的函数。 |
free | 释放内存的函数。 |
malloc | 分配指定大小内存的函数。 |
calloc | 给数组分配内存并将所有位都初始化为0的函数。 |