realloc()
#include <stdlib.h> void *realloc(void *ptr, size_t size);
Описание
Изменяет размер ранее выделенной памяти, адресуемой параметром, в соответствии с заданным размером
Действие функции realloc() в версии С99 немного отличается от ее работы в языках C++ и С89, хотя основной результат совпадает. В языках C++ и С89 функция realloc() изменяет размер ранее выделенной памяти, адресуемой параметром ptr в соответствии с заданным размером size. Значение параметра size может быть больше или меньше исходного. Функция realloc() возвращает указатель наблок памяти, поскольку не исключена необходимость перемещения этого блока при увеличении размера памяти. В этом случае содержимое старого блока(до size байт) копируется в новый блок. В версии С99 блок памяти, адресуемый параметром ptr, освобождается, а вместо него выделяется новый блок. Содержимое нового блока совпадает с содержимым исходного(по длине, переданной в параметре size). Функция возвращает указатель на новый блок. Причем разрешается, чтобы новый и старый блоки начинались с одинакового адреса(т.е. указатель, возвращаемый функцией realloc(), может совпадать с указателем, переданным в параметре ptr). Если указатель ptr нулевой, функция realloc() просто выделяет size байт памяти и возвращает указатель на эту память. Если значение параметра size равно нулю, память, адресуемая параметром ptr, освобождается. Если в куче нет достаточного объема свободной памяти для выделения size байт, возвращается нулевой указатель, а исходный блок памяти остается неизменным. |
Нет комментариев. Оставить комментарий: |