Realloc () Funkció a C könyvtárban: Hogyan kell használni? Tanuljon példával

Tartalomjegyzék:

Anonim

Mi az a realloc ()?

A realloc () a C könyvtár függvénye, amely nagyobb memória méretet ad hozzá a már kiosztott memória blokkokhoz. A C-ben történő átcsoportosítás célja az aktuális memóriablokkok kibővítése, miközben az eredeti tartalmat a jelenlegi állapotában hagyja. A realloc () függvény csökkenti a korábban kiosztott memória méretét malloc vagy calloc függvényekkel. A realloc a memória átcsoportosítását jelenti.

Szintaxis a C átcsoportosításához

ptr = realloc (ptr,newsize);

A fenti utasítás új memóriaterületet rendel hozzá egy meghatározott méretűhez a newsize változóban. A funkció végrehajtása után a mutató visszatér a memóriablokk első bájtjához. Az új méret lehet nagyobb vagy kisebb, mint az előző memória. Nem lehetünk biztosak abban, hogy az újonnan lefoglalt blokk ugyanarra a helyre mutat-e, mint az előző memóriablokk. A C-ben található realloc függvény az összes korábbi adatot átmásolja az új régióban. Biztosítja, hogy az adatok biztonságban maradjanak.

Például:

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

A realloc () használata

Az alábbi C nyelvű program bemutatja, hogyan lehet a C realloc-ot használni a memória átcsoportosításához.

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

Az átcsoportosítás eredménye a C példában:

Memory created successfully

Ha az átcsoportosítás sikertelen műveletet eredményez, akkor null mutatót ad vissza, és a korábbi adatok is felszabadulnak.