Laisva atmintis C su nemokama funkcija

Free Memory C With Free Function



C kalba yra pakankamai efektyvi, kad galėtų valdyti jos atmintį. Tai reiškia, kad kiekvieną kartą, kai deklaruojate įprastą bet kokio tipo duomenų kintamąjį C, pati programavimo kalba yra atsakinga už šios atminties perkėlimą arba išlaisvinimą, kai jūsų programa bus sėkmingai įvykdyta. Tačiau dinaminio atminties paskirstymo atveju, kadangi atmintį skirstote rankiniu būdu, todėl jūs taip pat turite ją išleisti.

„Stdlib.h“ bibliotekoje yra speciali funkcija šiam tikslui atlikti, ty funkcija „free“ (). Šiandien mes išnagrinėsime poreikį naudoti šią funkciją C programavimo kalba. Po to apžvelgsime kelis pavyzdžius, kuriuose ši funkcija buvo naudojama rankiniu būdu atlaisvinti atmintį C programavimo kalba „Linux“.







Sistemos atminties atlaisvinimui reikia naudoti nemokamą funkciją C:

Visi žinome, kad mūsų kompiuterinės sistemos turi ribotą atmintį, todėl niekada negalime joje paleisti begalinių programų. Automatinio atminties paskirstymo atveju kompiuteris pasirūpina atminties atlaisvinimu, kai jūsų programa baigia vykdyti. Tačiau, kai atmintį rankiniu būdu paskirstome iš krūvos, turime ją vienaip ar kitaip atlaisvinti.



Priešingu atveju ilgainiui pritrūksime atminties ir nebeveiksime savo programų. Čia atsiranda stdlib.h bibliotekos nemokama () funkcija. Mes naudojame šią funkciją programos pabaigoje prieš pat grąžinimo pareiškimą, kad krūvos atmintis būtų grąžinta į kompiuterinę sistemą prieš nutraukiant jūsų programą.



Tarkime, kad toliau ignoruosite šią funkciją rašydami savo C kodus, kurie yra ypač skirti dinamiškam atminties paskirstymui. Tokiu atveju ateis momentas, kai nebegalėsite pasiekti savo krūvos, nes joje trūks atminties. Štai kodėl šios, atrodytų, mažiau vertingos funkcijos niekada negalima pamiršti, kai dinamiškai prisiimate atsakomybę už atminties paskirstymą.





Bendroji laisvos () funkcijos sintaksė C programavimo kalba yra tokia:

tuštumaLaisvas (tuštuma*ptr)

Čia tuščias raktinis žodis prieš funkciją free () nurodo, kad šios funkcijos grąžinimo tipas yra negaliojantis. Skliausteliuose esanti rodyklė atitinka atminties vietą, kurią reikia pašalinti. Tolesniame skyriuje bus aprašyti keli pavyzdžiai, kuriuose laisva () funkcija buvo panaudota išlaisvinant dinaminę atmintį, įgytą C.



Nemokamos funkcijos C naudojimo pavyzdžiai:

Funkciją free () galima naudoti su visomis trimis „stdlib.h“ bibliotekos atminties paskirstymo funkcijomis, t. Y. „Malloc“, „calloc“ ir „realloc“. Privaloma naudoti šią funkciją nurodžius pagrindines savo programos funkcijas, kad galėtumėte grąžinti savo kompiuterinei sistemai krūvos atmintį, kurią dinamiškai paskirstėte programos vykdymo metu. Dabar pažvelkime į keletą pavyzdžių, kai „free“ () funkcija buvo naudojama su „malloc“ ir „calloc“ funkcijomis C programavimo kalba.

1 pavyzdys: nemokamos funkcijos naudojimas su calloc C:

C kodas, skirtas naudoti nemokamą () funkciją su funkcija calloc (), buvo bendrinamas žemiau esančiame paveikslėlyje:

Pagrindinis šio kodo tikslas buvo dinamiškai priskirti tam tikrą atmintį naudojant funkciją calloc (). Šiuo tikslu dinaminės atminties dydį ir šios dinaminės atminties vertes laikėme vartotojo įvestimi. Tada mes ketinome išspausdinti gautas vertes terminale. Po viso šio kodo turime nemokamą () funkciją, kuri atleis priskirtą dinaminę atmintį dėl mūsų C programos vykdymo.

Šiek tiek pakeista to paties kodo versija taip pat parodyta paveikslėlyje žemiau:

Ši modifikuota versija buvo skirta tik atspausdinti mūsų dinamiškai priskirtas atminties vertes prieš rankinį inicijavimą. Mes žinome, kad funkcija calloc () inicijuoja visą atmintį su nuliais, kol neįvyksta aktualizavimas. Tačiau pagrindinis dalykas, kurį reikia atkreipti dėmesį į šį kodą, yra tas, kad nors šis kodas buvo gana kompaktiškas ir paprastas, mes vis tiek pasinaudojome „free“ () funkcija, kai tik buvo pasiekta norima funkcija, kad išlaisvintume turimą atminties atmintį. įgytas vykdant šią C programą.

2 pavyzdys: nemokamos funkcijos naudojimas su „malloc“ C:

C kodas, skirtas naudoti nemokamą () funkciją su malloc () funkcija, buvo bendrinamas toliau pateiktame paveikslėlyje:

Pagrindinis šio kodo tikslas buvo dinamiškai priskirti tam tikrą atmintį naudojant funkciją malloc (). Norėdami tai padaryti, mes priskyrėme šios dinaminės atminties reikšmes for for ciklui. Tada mes ketinome išspausdinti gautas vertes terminale, naudodami kitą ciklą. Po viso šio kodo mes turime nemokamą () funkciją prieš pat grąžinimo pareiškimą, kuris tiesiog paleis priskirtą dinaminę atmintį, įvykdžius mūsų C programą.

Išvada:

Šiame straipsnyje buvo pabrėžta, kaip svarbu naudoti nemokamą () funkciją C programavimo kalba „Linux“. Dauguma vartotojų mano, kad stdlib.h failo paskirstymo funkcijos yra svarbesnės; tačiau, perskaitę šį straipsnį, galite aiškiai matyti, kad funkcija free () yra vienodai svarbi. Tai padės atlaisvinti dinamiškai įgytą atmintį ir užtikrins, kad niekada nepritrūktumėte atminties, kai bandysite vykdyti savo programas ateityje.