Funkce realloc () v knihovně C: Jak používat? Učte se s příkladem

Obsah:

Anonim

Co je realloc ()?

realloc () je funkce knihovny C pro přidání větší velikosti paměti do již přidělených bloků paměti. Účelem realloc v C je rozšířit aktuální paměťové bloky a ponechat původní obsah tak, jak je. Funkce realloc () pomáhá zmenšit velikost dříve přidělené paměti pomocí funkcí malloc nebo calloc. realloc znamená přerozdělení paměti.

Syntaxe pro realloc v C

ptr = realloc (ptr,newsize);

Výše uvedený příkaz přiděluje nový prostor paměti se zadanou velikostí v proměnné newsize. Po provedení funkce bude ukazatel vrácen na první bajt paměťového bloku. Nová velikost může být větší nebo menší než předchozí paměť. Nemůžeme si být jisti, že pokud nově přidělený blok bude ukazovat na stejné místo jako předchozí blok paměti. Funkce realloc v C zkopíruje všechna předchozí data do nové oblasti. Zajišťuje, že data zůstanou v bezpečí.

Napří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;} 

Jak používat realloc ()

Níže uvedený program v jazyce C ukazuje, jak použít realloc v jazyce C k přerozdělení paměti.

#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ýsledek realoku v příkladu C:

Memory created successfully

Kdykoli má realloc za následek neúspěšnou operaci, vrátí nulový ukazatel a předchozí data se také uvolní.