Gratis hukommelse i C med gratis funktion

Free Memory C With Free Function



C -sproget er effektivt nok til at håndtere dets hukommelsesstyring. Det betyder, at hver gang du erklærer en regelmæssig variabel af en hvilken som helst datatype i C, er programmeringssproget selv ansvarligt for at dele eller frigive denne hukommelse, når dit program er blevet udført med succes. Men i tilfælde af dynamisk hukommelsestildeling, da du allokerer hukommelsen manuelt, er det derfor, du også skal frigive den på egen hånd.

I biblioteket stdlib.h er der en dedikeret funktion til at tjene dette formål, dvs. gratis () -funktionen. I dag vil vi undersøge behovet for at bruge denne funktion i programmeringssproget C. Derefter vil vi se på et par eksempler, hvor denne funktion er blevet brugt til at frigøre hukommelsen manuelt i C -programmeringssproget i Linux.







Behov for at bruge gratisfunktionen i C til frigørelse af systemhukommelse:

Vi ved alle, at vores computersystemer har begrænset hukommelse, hvorfor vi aldrig kan køre uendelige programmer i den. I tilfælde af automatisk hukommelsestildeling sørger computeren for at frigøre hukommelsen, når dit program er færdigt med udførelsen. Men når vi allokerer hukommelsen manuelt fra bunken, skal vi frigøre den fra en eller anden måde.



Ellers vil vi til sidst mangle hukommelse, og vi vil ikke køre vores programmer længere. Det er her gratis () -funktionen i biblioteket stdlib.h spiller ind. Vi bruger denne funktion ved afslutningen af ​​et program lige før returneringserklæringen, så bunkehukommelsen skal returneres til computersystemet inden dit program afsluttes.



Antag, at du vil blive ved med at ignorere denne funktion, mens du skriver dine C -koder, der er særligt målrettet mod dynamisk hukommelsestildeling. I så fald vil der komme et punkt, når du ikke længere kan få adgang til din bunke, da den vil løbe tør for hukommelse. Derfor må denne tilsyneladende mindre værdifulde funktion aldrig glemmes, når du tager ansvaret for hukommelsestildeling dynamisk.





Den generelle syntaks for gratis () -funktionen i programmeringssproget C er som følger:

ugyldiggratis (ugyldig*ptr)

Her angiver void -søgeordet før funktionen free (), at returtypen for denne funktion er ugyldig. Markøren inde i parenteserne svarer til den hukommelsesplacering, der skal fordeles. I det følgende afsnit beskrives nogle eksempler, hvor gratis () -funktionen er blevet brugt til at frigive den dynamiske hukommelse, der er erhvervet i C.



Eksempler på brug af gratisfunktionen i C:

Free () -funktionen kan bruges med alle de tre hukommelsesallokeringsfunktioner i stdlib.h -biblioteket, dvs. malloc, calloc og realloc. Det er obligatorisk at bruge denne funktion efter angivelse af programmets grundlæggende funktionalitet, så du kan aflevere den bunkehukommelse, som du dynamisk har tildelt under programudførelsen, tilbage til dit computersystem. Lad os nu se på et par eksempler, hvor gratis () -funktionen er blevet brugt med malloc- og calloc -funktionerne i programmeringssproget C.

Eksempel # 1: Brug af gratisfunktionen med calloc i C:

C -koden til brug af gratis () -funktionen med calloc () -funktionen er blevet delt på billedet herunder:

Det grundlæggende formål med denne kode var at tildele noget hukommelse dynamisk ved hjælp af calloc () -funktionen. Til det har vi taget størrelsen på den dynamiske hukommelse og værdierne for denne dynamiske hukommelse som input fra brugeren. Derefter havde vi til hensigt at udskrive de erhvervede værdier på terminalen. Efter hele denne kode har vi vores gratis () -funktion, der frigiver den tildelte dynamiske hukommelse på grund af udførelsen af ​​vores C -program.

En lidt ændret version af den samme kode er også vist på billedet nedenfor:

Denne ændrede version havde kun til hensigt at udskrive vores dynamisk tildelte hukommelsesværdier før den manuelle initialisering. Vi ved, at calloc () -funktionen initialiserer hele hukommelsen med nuller, før aktualiseringen sker. Det vigtigste punkt, der skal bemærkes her i denne kode, er, at selvom denne kode var ret kompakt og enkel, har vi stadig gjort brug af gratis () -funktionen, når den ønskede funktionalitet var opnået bare for at frigive den bunkehukommelse, vi havde erhvervet som følge af udførelsen af ​​dette C -program.

Eksempel # 2: Brug af gratisfunktionen med malloc i C:

C -koden til brug af gratis () -funktionen med malloc () -funktionen er blevet delt i billedet, der er vedlagt herunder:

Det grundlæggende formål med denne kode var at tildele noget hukommelse dynamisk ved hjælp af malloc () -funktionen. Til det har vi tildelt værdierne for denne dynamiske hukommelse i en for loop. Derefter havde vi til hensigt at udskrive de erhvervede værdier på terminalen ved hjælp af en anden til loop. Efter hele denne kode har vi vores gratis () funktion lige før retursætningen, der simpelthen frigiver den tildelte dynamiske hukommelse som et resultat af udførelsen af ​​vores C -program.

Konklusion:

Denne artikel understregede vigtigheden af ​​at bruge funktionen gratis () i programmeringssproget C i Linux. De fleste brugere mener, at tildelingsfunktionerne i filen stdlib.h er vigtigere; ved at gå igennem denne artikel kan du tydeligt se, at funktionen gratis () er lige så vigtig. Det hjælper dig med at frigive den dynamisk erhvervede hukommelse og sikre, at du aldrig løber tør for hukommelse, når du prøver at udføre dine programmer i fremtiden.