Realloc () Funkcija C bibliotekoje: kaip naudoti? Sužinokite su pavyzdžiu

Kas yra „realloc“ ()?

„realloc“) yra C bibliotekos funkcija, skirta pridėti daugiau atminties jau paskirstytuose atminties blokuose. „Realloc“ C tikslas yra išplėsti dabartinius atminties blokus, paliekant originalų turinį tokį, koks jis yra. „realloc“) funkcija padeda sumažinti anksčiau paskirstytos atminties dydį naudojant „malloc“ arba „calloc“ funkcijas. „realloc“ reiškia atminties perskirstymą.

Realloc sintaksė C

ptr = realloc (ptr,newsize);

Pirmiau pateiktame sakinyje kintamajame newsize priskiriama nauja atminties vieta su nurodytu dydžiu. Atlikus funkciją, rodyklė bus grąžinta į pirmąjį atminties bloko baitą. Naujas dydis gali būti didesnis arba mažesnis nei ankstesnė atmintis. Mes negalime būti tikri, kad jei naujai paskirtas blokas nurodys tą pačią vietą kaip ir ankstesnis atminties blokas. Funkcija „realloc“ C nukopijuos visus ankstesnius naujojo regiono duomenis. Tai užtikrina, kad duomenys išliks saugūs.

Pavyzdžiui:

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

Kaip naudoti „realloc“ ()

Žemiau esanti C programa parodo, kaip naudoti „realloc“ C, norint perskirstyti atmintį.

#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 rezultatas C pavyzdyje:

Memory created successfully

Kiekvieną kartą, kai persiuntimas sukelia nesėkmingą operaciją, jis grąžina nulinį rodyklę, o ankstesni duomenys taip pat atlaisvinami.

Įdomios straipsniai...