Funcția realloc () în Biblioteca C: Cum se folosește? Aflați cu Exemplu

Cuprins:

Anonim

Ce este realloc ()?

realloc () este o funcție a bibliotecii C pentru adăugarea mai multor dimensiuni de memorie blocurilor de memorie deja alocate. Scopul realloc în C este de a extinde blocurile de memorie actuale lăsând conținutul original așa cum este. funcția realloc () ajută la reducerea dimensiunii memoriei alocate anterior de funcțiile malloc sau calloc. realloc reprezintă realocarea memoriei.

Sintaxă pentru realloc în C

ptr = realloc (ptr,newsize);

Instrucțiunea de mai sus alocă un nou spațiu de memorie cu o dimensiune specificată în variabila newsize. După executarea funcției, indicatorul va fi returnat la primul octet al blocului de memorie. Noua dimensiune poate fi mai mare sau mai mică decât memoria anterioară. Nu putem fi siguri că, dacă blocul nou alocat va indica aceeași locație ca cea a blocului de memorie anterior. Funcția de realocare din C va copia toate datele anterioare din noua regiune. Se asigură că datele vor rămâne în siguranță.

De exemplu:

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

Cum se folosește realloc ()

Programul de mai jos din C arată cum să utilizați realloc în C pentru realocarea memoriei.

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

Rezultatul reallocului în exemplul C:

Memory created successfully

Ori de câte ori realocarea are ca rezultat o operație nereușită, acesta returnează un pointer nul, iar datele anterioare sunt, de asemenea, eliberate.