CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по библиотечным функциям языка Си
realloc - переразместить блок памяти
Описание
realloc изменяет размер ранее выделенного блока памя- ти, на который указывает ptr. Размер этого блока после обращения к realloc определяется параметром size. Если size равен 0, блок освобождается и возвращается NULL. Если ptr равен NULL, то отводится (по malloc) size байтов памяти и возвращается указатель на этот массив памяти. Если для расширения текущего блока места не хватает, будет размещен новый блок, а текущий блок ос- вободится. Текущие данные перепишутся в новый блок.
Использование
#include <stdlib.h> void *realloc(void *ptr, unsigned size); /* ANSI */
Возвращаемое значение
Возвращается указатель на переразмещенный блок памя- ти. Если нет подходящей памяти для выполнения realloc, возвращается NULL (но память по ptr не освобождается).
Пример
#include <stdio.h> #include <stdlib.h> #include <string.h> main() { char *ptr; ptr = realloc(NULL, 20*sizeof(char)); strcpy(ptr, "Это первая часть, "); ptr = realloc(ptr, 100*sizeof(char)); strcat(ptr, "Это вторая часть); printf("%s\n", ptr); realloc(ptr, 0); }
Рекомендация
Смотрите также calloc, free, malloc.
Оставить комментарий
Комментарии
1.
16 декабря 2012, 02:21:10
Огромное спасибо, очень помогло!