Gratis minne i C med gratis funksjon

Free Memory C With Free Function



C -språket er effektivt nok til å håndtere minnestyringen. Det betyr at når du deklarerer en vanlig variabel av en hvilken som helst datatype i C, er programmeringsspråket selv ansvarlig for å dele eller frigjøre dette minnet når programmet er kjørt vellykket. Men når det gjelder dynamisk minnetildeling, siden du tildeler minnet manuelt, er det derfor du også må frigjøre det på egen hånd.

I biblioteket stdlib.h er det en dedikert funksjon for å tjene dette formålet, dvs. gratis () -funksjonen. I dag vil vi undersøke behovet for å bruke denne funksjonen i programmeringsspråket C. Etter det vil vi se på noen få eksempler der denne funksjonen har blitt brukt til å frigjøre minnet manuelt i programmeringsspråket C i Linux.







Behov for å bruke gratisfunksjonen i C for å frigjøre systemminne:

Vi vet alle at datasystemene våre har begrenset minne, og derfor kan vi aldri kjøre uendelige programmer i den. Ved automatisk minnetildeling tar datamaskinen seg av med å frigjøre minnet når programmet er ferdig. Men når vi tildeler minnet manuelt fra haugen, må vi frigjøre det fra en eller annen måte.



Ellers vil vi til slutt gå tom for minne, og vi vil ikke kjøre programmene våre lenger. Det er her free () -funksjonen til biblioteket stdlib.h spiller inn. Vi bruker denne funksjonen på slutten av et program rett før returerklæringen, slik at haugeminnet skal returneres til datasystemet før programmet avsluttes.



Anta at du vil fortsette å ignorere denne funksjonen mens du skriver C -kodene dine som er spesielt rettet mot dynamisk minnetildeling. I så fall vil det komme et punkt når du ikke får tilgang til haugen din lenger, siden den går tom for minne. Det er derfor denne tilsynelatende mindre verdifulle funksjonen aldri må glemmes når du tar ansvaret for minnetildeling dynamisk.





Den generelle syntaksen til gratis () -funksjonen i programmeringsspråket C er som følger:

tomromgratis (tomrom*ptr)

Her angir void -søkeordet før gratis () -funksjonen at returtypen for denne funksjonen er ugyldig. Pekeren inne i parentesene tilsvarer minnestedet som må deles. Den følgende delen vil beskrive noen eksempler der gratis () -funksjonen har blitt brukt for å frigjøre det dynamiske minnet som er oppnådd i C.



Eksempler på bruk av gratisfunksjonen i C:

Free () -funksjonen kan brukes med alle de tre minnetildelingsfunksjonene i stdlib.h -biblioteket, dvs. malloc, calloc og realloc. Det er obligatorisk å bruke denne funksjonen etter at du har angitt programmets grunnleggende funksjonalitet, slik at du kan overlate haugeminnet du dynamisk har tildelt under programutførelsen, tilbake til datasystemet ditt. La oss nå se på noen få eksempler der gratis () -funksjonen har blitt brukt med malloc- og calloc -funksjonene i programmeringsspråket C.

Eksempel # 1: Bruke gratisfunksjonen med calloc i C:

C -koden for bruk av gratis () -funksjonen med calloc () -funksjonen er delt i bildet nedenfor:

Det grunnleggende formålet med denne koden var å tilordne noe minne dynamisk ved hjelp av calloc () -funksjonen. For det har vi tatt størrelsen på det dynamiske minnet og verdiene til dette dynamiske minnet som input fra brukeren. Deretter hadde vi tenkt å skrive ut de ervervede verdiene på terminalen. Etter hele denne koden har vi vår gratis () -funksjon som frigjør det tildelte dynamiske minnet på grunn av utførelsen av vårt C -program.

En litt modifisert versjon av den samme koden er også vist på bildet som er sitert nedenfor:

Denne modifiserte versjonen hadde bare til hensikt å skrive ut våre dynamisk tildelte minneverdier før den ble initialisert manuelt. Vi vet at calloc () -funksjonen initialiserer hele minnet med nuller før aktualiseringen skjer. Imidlertid er hovedpoenget som skal bemerkes her i denne koden at selv om denne koden var ganske kompakt og enkel, brukte vi fortsatt gratis () -funksjonen når den ønskede funksjonaliteten ble oppnådd bare for å frigjøre haugminnet vi hadde ervervet som et resultat av utførelsen av dette C -programmet.

Eksempel 2: Bruke gratisfunksjonen med malloc i C:

C -koden for bruk av gratis () -funksjonen med malloc () -funksjonen er delt i bildet som er vedlagt nedenfor:

Det grunnleggende formålet med denne koden var å tilordne noe minne dynamisk ved hjelp av malloc () -funksjonen. For det har vi tilordnet verdiene til dette dynamiske minnet i en for loop. Deretter hadde vi tenkt å skrive ut de ervervede verdiene på terminalen ved hjelp av en annen for loop. Etter hele denne koden har vi vår gratis () -funksjon rett før retursetningen som bare vil frigjøre det tildelte dynamiske minnet som et resultat av utførelsen av vårt C -program.

Konklusjon:

Denne artikkelen understreket viktigheten av å bruke gratis () -funksjonen i programmeringsspråket C i Linux. De fleste brukerne mener at fordelingsfunksjonene til stdlib.h -filen er viktigere; Ved å gå gjennom denne artikkelen kan du imidlertid tydelig se at gratis () -funksjonen er like viktig. Det vil hjelpe deg med å frigjøre det dynamisk ervervede minnet og sikre at du aldri går tom for minne når du prøver å utføre programmene dine i fremtiden.