Функция realloc () в C библиотека: Как да използвам? Научете с пример

Съдържание:

Anonim

Какво е realloc ()?

realloc () е функция на C библиотека за добавяне на повече размер памет към вече разпределените блокове памет. Целта на realloc в C е да разшири текущите блокове памет, като същевременно остави оригиналното съдържание такова, каквото е. Функцията realloc () помага да се намали размерът на предварително разпределената памет чрез функции на malloc или calloc. realloc означава преразпределение на паметта.

Синтаксис за realloc в C

ptr = realloc (ptr,newsize);

Горният оператор разпределя ново пространство в паметта с определен размер в променливата newsize. След изпълнение на функцията, показалеца ще бъде върнат към първия байт на блока памет. Новият размер може да бъде по-голям или по-малък от предишния спомен. Не можем да бъдем сигурни, че ако новоразпределеният блок ще сочи към същото място като това на предишния блок памет. Функцията realloc в C ще копира всички предишни данни в новия регион. Той гарантира, че данните ще останат в безопасност.

Например:

#include int main () {char *ptr;ptr = (char *) malloc(10);strcpy(ptr, "Programming");printf(" %s, Address = %u\n", ptr, ptr);ptr = (char *) realloc(ptr, 20); //ptr is reallocated with new sizestrcat(ptr, " In 'C'");printf(" %s, Address = %u\n", ptr, ptr);free(ptr);return 0;} 

Как да използвам realloc ()

Програмата по-долу в C демонстрира как да се използва realloc в C за преразпределение на паметта.

#include #include int main() {int i, * ptr, sum = 0;ptr = malloc(100);if (ptr == NULL) {printf("Error! memory not allocated.");exit(0);}ptr = realloc(ptr,500);if(ptr != NULL)printf("Memory created successfully\n");return 0;}

Резултат от примера realloc в C:

Memory created successfully

Всеки път, когато realloc доведе до неуспешна операция, той връща нулев указател и предишните данни също се освобождават.