std::realloc

来自cppreference.com
< cpp‎ | memory‎ | c

 
 
 
 
定义于头文件 <cstdlib>
void *realloc( void *ptr, std::size_t new_size );
重新分配的内存区域。必须预先分配的malloc()calloc()realloc()尚未与free()中解放出来,否则,结果是不确定的.....
原文:
Reallocates the given area of memory. It must be previously allocated by malloc(), calloc() or realloc() and not yet freed with free(), otherwise, the results are undefined.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
重新分配是通过两个办法来
原文:
The reallocation is done by either:
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
a)
扩大现有的区域所指向的ptr,如果可能的话。最多的较小的新的和旧的尺寸无关的面积保持不变。如果该区域被扩展时,新的阵列的一部分的内容是未定义的.
原文:
expanding the existing area pointed to by ptr, if possible. The contents of the area remain unchanged up to the lesser of the new and old sizes. If the area is expanded, the contents of the new part of the array are undefined.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
b)
分配一个新的内存块的大小new_size字节,复制内存区域大小等于较小的新的和旧的大小,并释放旧块.
原文:
allocating a new memory block of size new_size bytes, copying memory area with size equal the lesser of the new and the old sizes, and freeing the old block.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
如果没有足够的内存,旧的内存块不被释放,并返回空指针.
原文:
If there is not enough memory, the old memory block is not freed and null-pointer is returned.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

目录

[编辑] 参数

ptr -
到存储区域的指针,被重新分配
原文:
pointer to the memory area to be reallocated
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
new_size -
新的数组的大小
原文:
new size of the array
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 返回值

新分配的内存或NULL开始的指针,如果发生了错误。指针必须被释放free().
原文:
Pointer to the beginning of newly allocated memory or NULL if error has occurred. The pointer must be deallocated with free().
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 示例

[编辑] 另请参阅

reallocC 文档