Функция Перераспределяет память.
Синтаксис #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.
Смотрите также callocfarreallocfreemalloc
Пример:
#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;
}