Prosti pomnilnik v C z brezplačno funkcijo

Free Memory C With Free Function



Jezik C je dovolj učinkovit za upravljanje pomnilnika. To pomeni, da kadar koli razglasite običajno spremenljivko katere koli vrste podatkov v jeziku C, je programski jezik sam odgovoren za prerazporeditev ali sprostitev tega pomnilnika, ko je bil vaš program uspešno izveden. V primeru dinamične dodelitve pomnilnika, ker pomnilnik dodeljujete ročno, ga morate zato tudi sprostiti sami.

V knjižnici stdlib.h je za ta namen namenska funkcija, to je funkcija free (). Danes bomo raziskali potrebo po uporabi te funkcije v programskem jeziku C. Nato si bomo ogledali nekaj primerov, v katerih je bila ta funkcija uporabljena za ročno sprostitev pomnilnika v programskem jeziku C v Linuxu.







Za sprostitev sistemskega pomnilnika je potrebna uporaba brezplačne funkcije v C:

Vsi vemo, da imajo naši računalniški sistemi omejen pomnilnik, zaradi česar v njem nikoli ne moremo zagnati neskončnih programov. V primeru samodejne dodelitve pomnilnika računalnik poskrbi za sprostitev pomnilnika, ko se program zaključi. Ko pa pomnilnik ročno dodelimo iz kopice, ga moramo tako ali drugače osvoboditi.



V nasprotnem primeru nam bo sčasoma zmanjkalo pomnilnika in naših programov ne bomo več izvajali. Tu nastopi funkcija free () knjižnice stdlib.h. To funkcijo uporabljamo na koncu programa tik pred stavkom return, tako da je treba kupni pomnilnik vrniti v računalniški sistem pred prekinitvijo programa.



Recimo, da boste med pisanjem kod C, ki so še posebej namenjene dinamični dodelitvi pomnilnika, te funkcije prezrli. V tem primeru bo prišlo do točke, ko ne boste mogli več dostopati do svojega kupa, ker mu bo zmanjkalo pomnilnika. Zato te na videz manj dragocene funkcije nikoli ne smete pozabiti, kadar dinamično prevzamete odgovornost za dodeljevanje pomnilnika.





Splošna sintaksa funkcije free () v programskem jeziku C je naslednja:

ničnoprost (nično*ptr)

Tu ključna beseda void pred funkcijo free () navaja, da je vrsta vrnitve te funkcije nična. Kazalec v oklepajih ustreza pomnilniški lokaciji, ki jo je treba odstraniti. V naslednjem razdelku je opisanih nekaj primerov, v katerih je bila funkcija free () uporabljena za sprostitev dinamičnega pomnilnika, pridobljenega v C.



Primeri uporabe brezplačne funkcije v jeziku C:

Funkcijo free () lahko uporabite z vsemi tremi funkcijami dodeljevanja pomnilnika knjižnice stdlib.h, to je malloc, calloc in realloc. To funkcijo morate obvezno uporabiti, potem ko navedete osnovno funkcionalnost svojega programa, tako da lahko pomnilnik kupe, ki ste ga dinamično dodelili med izvajanjem programa, predate nazaj v računalniški sistem. Zdaj pa si oglejmo nekaj primerov, v katerih je bila funkcija free () uporabljena s funkcijami malloc in calloc v programskem jeziku C.

Primer # 1: Uporaba brezplačne funkcije z calloc v C:

Kodo C za uporabo funkcije free () s funkcijo calloc () smo dali v skupno rabo na spodnji sliki:

Osnovni namen te kode je bil dinamično dodeliti nekaj pomnilnika s pomočjo funkcije calloc (). Za to smo za vnos uporabnika vzeli velikost dinamičnega pomnilnika in vrednosti tega dinamičnega pomnilnika. Nato smo nameravali natisniti pridobljene vrednosti na terminalu. Po celotni kodi imamo funkcijo free (), ki bo sprostila dodeljeni dinamični pomnilnik zaradi izvajanja našega programa C.

Nekoliko spremenjena različica iste kode je prikazana tudi na spodnji sliki:

Ta spremenjena različica je namenjena samo tiskanju naših dinamično dodeljenih pomnilniških vrednosti pred ročno inicializacijo. Vemo, da funkcija calloc () inicializira celoten pomnilnik z ničlami, preden pride do aktualizacije. Glavna točka, ki jo je treba opozoriti tukaj v tej kodi, je, da čeprav je bila ta koda precej kompaktna in preprosta, smo vseeno uporabili funkcijo free (), ko smo dosegli želeno funkcionalnost, samo da smo sprostili kupček pomnilnika, ki smo ga imeli pridobljenih zaradi izvajanja tega programa C.

Primer # 2: Uporaba brezplačne funkcije z malloc v C:

Kodo C za uporabo funkcije free () s funkcijo malloc () smo dali v skupno rabo na spodnji sliki:

Osnovni namen te kode je bil dinamično dodeliti nekaj pomnilnika s pomočjo funkcije malloc (). V ta namen smo dodelili vrednosti tega dinamičnega pomnilnika v zanki for. Nato smo nameravali s pomočjo druge for zanke natisniti pridobljene vrednosti. Po celotni kodi imamo funkcijo free () tik pred stavkom return, ki bo preprosto sprostila dodeljeni dinamični pomnilnik kot rezultat izvajanja našega programa C.

Zaključek:

Ta članek je poudaril pomen uporabe funkcije free () v programskem jeziku C v Linuxu. Večina uporabnikov meni, da so funkcije dodeljevanja datoteke stdlib.h pomembnejše; s pregledom tega članka lahko jasno vidite, da je funkcija free () enako pomembna. Pomagal vam bo pri sprostitvi dinamično pridobljenega pomnilnika in zagotovil, da vam nikoli ne bo zmanjkalo pomnilnika, ko boste poskušali v prihodnosti izvajati svoje programe.