Besplatna memorija u C sa slobodnom funkcijom

Free Memory C With Free Function

C jezik je dovoljno učinkovit da upravlja svojim upravljanjem memorijom. To znači da kad god deklarirate regularnu varijablu bilo koje vrste podataka u C -u, sam programski jezik je odgovoran za oslobađanje ili oslobađanje ove memorije nakon što se vaš program uspješno izvrši. Međutim, u slučaju dinamičke dodjele memorije, budući da memoriju dodjeljujete ručno, zato je morate i sami osloboditi.

U knjižnici stdlib.h postoji namjenska funkcija koja služi ovoj svrsi, tj. Funkcija free (). Danas ćemo istražiti potrebu korištenja ove funkcije u programskom jeziku C. Nakon toga ćemo pogledati nekoliko primjera u kojima je ova funkcija korištena za ručno oslobađanje memorije u programskom jeziku C u Linuxu.



Potreba korištenja besplatne funkcije u C za oslobađanje sistemske memorije:

Svi znamo da naši računalni sustavi imaju ograničenu memoriju, zbog čega u njoj nikada ne možemo pokrenuti beskonačne programe. U slučaju automatske dodjele memorije, računalo će se pobrinuti za oslobađanje memorije po završetku izvođenja programa. Međutim, kada memoriju ručno dodjeljujemo iz hrpe, moramo je osloboditi na ovaj ili onaj način.



U suprotnom ćemo na kraju ostati bez memorije i nećemo dalje pokretati naše programe. Ovdje dolazi do izražaja funkcija free () biblioteke stdlib.h. Ovu funkciju koristimo na kraju programa neposredno prije izraza return, tako da se memorija hrpe treba vratiti u računalni sustav prije završetka vašeg programa.



Pretpostavimo da ćete ignorirati ovu funkciju dok pišete svoje C kodove koji su posebno usmjereni na dinamičku dodjelu memorije. U tom slučaju doći će trenutak kada više nećete moći pristupiti hrpi jer će ostati bez memorije. Zato se ova naizgled manje vrijedna funkcija nikada ne smije zaboraviti kad god preuzimate odgovornost za dinamičku dodjelu memorije.

Opća sintaksa funkcije free () u programskom jeziku C je sljedeća:

poništitibesplatno (poništiti*ptr)

Ovdje ključna riječ void prije funkcije free () navodi da je tip povratka ove funkcije void. Pokazivač unutar zagrada odgovara memorijskom mjestu koje je potrebno osloboditi. Sljedeći odjeljak opisat će neke primjere u kojima se funkcija free () koristila za oslobađanje dinamičke memorije stečene u C.



Primjeri korištenja besplatne funkcije u jeziku C:

Funkcija free () može se koristiti sa sve tri funkcije dodjele memorije biblioteke stdlib.h, tj. Malloc, calloc i realloc. Ova je funkcija obavezna za korištenje nakon navođenja osnovnih funkcionalnosti vašeg programa kako biste mogli predati memoriju hrpe koju ste dinamički dodijelili tijekom izvođenja programa natrag u svoj računalni sustav. Pogledajmo sada nekoliko primjera u kojima je funkcija free () korištena s malloc i calloc funkcijama u programskom jeziku C.

Primjer # 1: Korištenje besplatne funkcije s calloc u C:

C kod za korištenje funkcije free () s funkcijom calloc () podijeljen je na donjoj slici:

Osnovna svrha ovog koda bila je dinamičko dodjeljivanje neke memorije uz pomoć funkcije calloc (). Za to smo uzeli veličinu dinamičke memorije i vrijednosti ove dinamičke memorije kao unos od korisnika. Zatim smo namjeravali ispisati stečene vrijednosti na terminalu. Nakon cijelog ovog koda, imamo našu funkciju free () koja će osloboditi dodijeljenu dinamičku memoriju zbog izvršavanja našeg C programa.

Nešto izmijenjena verzija istog koda također je prikazana na donjoj slici:

Ova izmijenjena verzija namjeravala je ispisivati ​​samo naše dinamički dodijeljene memorijske vrijednosti prije ručne inicijalizacije. Znamo da funkcija calloc () inicijalizira cijelu memoriju nulama prije nego što dođe do aktualizacije. Međutim, glavna stvar koju treba primijetiti ovdje u ovom kodu je da, iako je ovaj kôd bio prilično kompaktan i jednostavan, ipak smo koristili funkciju free () nakon što je postignuta željena funkcionalnost samo za oslobađanje memorije hrpe koju smo imali stečene kao rezultat izvršavanja ovog C programa.

Primjer 2: Korištenje besplatne funkcije s malloc u C:

C kôd za korištenje funkcije free () s funkcijom malloc () podijeljen je na slici dodanoj ispod:

Osnovna svrha ovog koda bila je dinamičko dodjeljivanje neke memorije uz pomoć funkcije malloc (). Za to smo dodijelili vrijednosti ove dinamičke memorije u for petlji. Zatim smo namjeravali ispisati stečene vrijednosti na terminalu uz pomoć druge for petlje. Nakon cijelog ovog koda, imamo funkciju free () neposredno prije naredbe return koja će jednostavno osloboditi dodijeljenu dinamičku memoriju kao rezultat izvršavanja našeg C programa.

Zaključak:

Ovaj članak je naglasio važnost korištenja funkcije free () u programskom jeziku C u Linuxu. Većina korisnika vjeruje da su funkcije dodjele datoteke stdlib.h važnije; međutim, pregledavajući ovaj članak, možete jasno vidjeti da je funkcija free () jednako važna. Pomoći će vam u oslobađanju dinamički stečene memorije i osigurati da vam nikad ne ponestane memorije kad god pokušate izvesti svoje programe u budućnosti.