Пространства имён
Варианты
Действия

realloc

Материал из cppreference.com
< c‎ | memory

Определено в заголовочном файле <stdlib.h>
void *realloc( void *ptr, 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.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Перераспределение осуществляется путем:
Оригинал:
The reallocation is done by either:
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
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.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
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.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Если не хватает памяти, старый блок памяти не освобождается и нуль-указатель возвращается.
Оригинал:
If there is not enough memory, the old memory block is not freed and null-pointer is returned.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

Содержание

[править] Параметры

ptr -
Указатель на область памяти, чтобы быть перераспределены
Оригинал:
pointer to the memory area to be reallocated
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
new_size -
Новый размер массива
Оригинал:
new size of the array
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Возвращаемое значение

Указатель на начало новой выделенной памяти или NULL, если произошла ошибка. Указатель должен быть освобожден с free().
Оригинал:
Pointer to the beginning of newly allocated memory or NULL if error has occurred. The pointer must be deallocated with free().
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Пример

[править] См. также

C++ documentation for realloc