realloc

Функция            Перераспределяет память.

Синтаксис          #include
                   void * realloc(void *block, size_t size);

Файл, содержащий   stdlib.h и alloc.h
прототип

Описание           realloc пытается сжать или увеличить предваритель-
                   выделенный блок до размера в size байт. Аргумент
                   block указывает на блок памяти, полученный при
                   вызове функций malloc, calloc или realloc. Если
                   block является нулевым указателем, realloc рабо-
                   тает также как и malloc.

                   realloc изменяет размер выделенного блока памяти
                   и при необходимости копирует его содержимое в но-
                   вый блок.

Возвращаемое       realloc возвращает адрес блока, который может от-
значение           личаться от исходного. Если блок не может быть
                   выделен или size равно 0, то realloc возвращает
                   NULL.

Переносимость      realloc доступна в системах UNIX и поддерживается
                   стандартом ANSI C.

Смотрите также      calloc farrealloc free malloc

Пример:

#include
#include
#include

int main(void)
{
   char *str;
   /* выделить память под строку */
   str = malloc(10);
   /* скопировать в строку "Hello" */
   strcpy(str,"Hello");
   /* вывести строку */
   printf("Строка: %s\n, Адрес: %p\n",str,str);
   str = realloc(str,20);
   printf("Строка: %s\n, Новый адрес: %p\n",str,str);
   /* освободить память */
   free(str);
   return 0;
}