Funkcia realloc () v knižnici C: Ako používať? Učte sa na príklade

Obsah:

Anonim

Čo je to realoc ()?

realloc () je funkcia knižnice C na pridanie väčšej veľkosti pamäte do už pridelených pamäťových blokov. Účelom realokácie v jazyku C je rozšíriť súčasné bloky pamäte a ponechať pôvodný obsah tak, ako je. Funkcia realloc () pomáha zmenšiť veľkosť predtým pridelenej pamäte funkciami malloc alebo calloc. realloc znamená realokácia pamäte.

Syntax pre realokáciu v jazyku C.

ptr = realloc (ptr,newsize);

Vyššie uvedené vyhlásenie alokuje nový pamäťový priestor so zadanou veľkosťou v premennej newsize. Po vykonaní funkcie sa ukazovateľ vráti na prvý bajt pamäťového bloku. Nová veľkosť môže byť väčšia alebo menšia ako predchádzajúca pamäť. Nemôžeme si byť istí, že ak novo pridelený blok bude smerovať na rovnaké miesto ako predchádzajúci pamäťový blok. Funkcia realloc v C skopíruje všetky predchádzajúce údaje do novej oblasti. Zaisťuje, že údaje zostanú v bezpečí.

Napríklad:

#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;} 

Ako používať realloc ()

Nasledujúci program v jazyku C demonštruje, ako používať realokáciu v jazyku C na opätovné pridelenie pamäte.

#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;}

Výsledok realoku v príklade C:

Memory created successfully

Kedykoľvek má realoc za následok neúspešnú operáciu, vráti nulový ukazovateľ a predchádzajúce údaje sa tiež uvoľnia.