Gratis minne i C med gratis funktion

Free Memory C With Free Function



C -språket är tillräckligt effektivt för att hantera minneshantering. Det betyder att när du deklarerar en vanlig variabel av vilken datatyp som helst i C, är programmeringsspråket själv ansvarigt för att fördela eller släppa detta minne när ditt program har körts framgångsrikt. Men när det gäller dynamisk minnesallokering, eftersom du tilldelar minnet manuellt, är det därför du också måste släppa det på egen hand.

I stdlib.h -biblioteket finns en dedikerad funktion för att tjäna detta ändamål, det vill säga gratis () -funktionen. Idag kommer vi att utforska behovet av att använda denna funktion i programmeringsspråket C. Efter det kommer vi att titta på några exempel där denna funktion har använts för att frigöra minnet manuellt i programmeringsspråket C i Linux.







Behov av att använda gratisfunktionen i C för att frigöra systemminne:

Vi vet alla att våra datorsystem har begränsat minne, varför vi aldrig kan köra oändliga program i det. Vid automatisk minnestilldelning tar datorn hand om att frigöra minnet när ditt program har körts. Men när vi tilldelar minnet manuellt från högen måste vi frigöra det från ett eller annat sätt.



Annars kommer vi så småningom att få ont om minne, och vi kommer inte att köra våra program längre. Det är här gratis () -funktionen för biblioteket stdlib.h spelar in. Vi använder den här funktionen i slutet av ett program strax före returseddelandet så att högminnet ska skickas tillbaka till datasystemet innan programmet avslutas.



Antag att du kommer att fortsätta ignorera denna funktion medan du skriver dina C -koder som är särskilt inriktade på dynamisk minnesallokering. I så fall kommer en punkt när du inte kan komma åt din hög längre eftersom det tar slut på minne. Det är därför denna till synes mindre värdefulla funktion aldrig får glömmas bort när du tar ansvaret för minnesfördelning dynamiskt.





Den allmänna syntaxen för free () -funktionen i programmeringsspråket C är följande:

tomhetfri (tomhet*ptr)

Här anger void -nyckelordet före funktionen free () att returtypen för denna funktion är ogiltig. Pekaren inuti parenteserna motsvarar minnesplatsen som måste fördelas. I följande avsnitt beskrivs några exempel där funktionen free () har använts för att frigöra det dynamiska minnet som erhållits i C.



Exempel på användning av gratisfunktionen i C:

Free () -funktionen kan användas med alla tre minnesallokeringsfunktioner i stdlib.h -biblioteket, dvs malloc, calloc och realloc. Det är obligatoriskt att använda den här funktionen efter att ha angett programmets grundläggande funktionalitet så att du kan överlämna det högminne som du dynamiskt tilldelat under programkörningen tillbaka till ditt datorsystem. Låt oss nu titta på några exempel där gratis () -funktionen har använts med malloc- och calloc -funktionerna i programmeringsspråket C.

Exempel # 1: Använda gratisfunktionen med calloc i C:

C -koden för att använda gratis () -funktionen med calloc () -funktionen har delats i bilden nedan:

Det grundläggande syftet med denna kod var att tilldela lite minne dynamiskt med hjälp av calloc () -funktionen. För det har vi tagit storleken på det dynamiska minnet och värdena för detta dynamiska minne som input från användaren. Sedan tänkte vi skriva ut de förvärvade värdena på terminalen. Efter hela koden har vi vår lediga () -funktion som frigör det tilldelade dynamiska minnet på grund av körningen av vårt C -program.

En något modifierad version av samma kod visas också i bilden som citeras nedan:

Denna modifierade version avsåg bara att skriva ut våra dynamiskt tilldelade minnesvärden innan den manuellt initierades. Vi vet att calloc () -funktionen initierar hela minnet med nollor innan aktualiseringen sker. Men den viktigaste punkten att notera här i den här koden är att även om den här koden var ganska kompakt och enkel, använde vi fortfarande funktionen gratis () när den önskade funktionaliteten uppnåddes bara för att frigöra det högminne som vi hade förvärvade som ett resultat av att detta C -program kördes.

Exempel # 2: Använda gratisfunktionen med malloc i C:

C -koden för att använda gratis () -funktionen med malloc () -funktionen har delats i bilden som bifogas nedan:

Det grundläggande syftet med denna kod var att tilldela lite minne dynamiskt med hjälp av malloc () -funktionen. För det har vi tilldelat värdena för detta dynamiska minne i en for loop. Sedan tänkte vi skriva ut de förvärvade värdena på terminalen med hjälp av en annan för loop. Efter hela koden har vi vår lediga () -funktion precis före returseddelandet som helt enkelt kommer att frigöra det tilldelade dynamiska minnet som ett resultat av körningen av vårt C -program.

Slutsats:

Denna artikel betonade vikten av att använda funktionen gratis () i programmeringsspråket C i Linux. De flesta användare tror att tilldelningsfunktionerna för filen stdlib.h är viktigare; Men genom att gå igenom den här artikeln kan du tydligt se att funktionen gratis () är lika viktig. Det hjälper dig att släppa det dynamiskt förvärvade minnet och se till att du aldrig får slut på minne när du försöker köra dina program i framtiden.