Volná paměť v C s volnou funkcí

Free Memory C With Free Function



Jazyk C je dostatečně účinný, aby zvládl správu paměti. Znamená to, že kdykoli deklarujete běžnou proměnnou jakéhokoli datového typu v jazyce C, za úspěšné uvolnění nebo uvolnění této paměti po úspěšném provedení programu je zodpovědný samotný programovací jazyk. V případě dynamické alokace paměti, protože přidělujete paměť ručně, proto ji musíte také uvolnit sami.

V knihovně stdlib.h je k tomuto účelu vyhrazená funkce, tj. Funkce free (). Dnes prozkoumáme potřebu používat tuto funkci v programovacím jazyce C. Poté se podíváme na několik příkladů, ve kterých byla tato funkce použita k manuálnímu uvolnění paměti v programovacím jazyce C v Linuxu.







Potřeba použití bezplatné funkce v C pro uvolnění systémové paměti:

Všichni víme, že naše počítačové systémy mají omezenou paměť, kvůli které v ní nikdy nemůžeme spouštět nekonečné programy. V případě automatického přidělování paměti se počítač postará o uvolnění paměti, když váš program dokončil provádění. Když však alokujeme paměť ručně z haldy, musíme ji tak či onak uvolnit.



V opačném případě budeme mít nedostatek paměti a nebudeme dále spouštět naše programy. Zde vstupuje do hry funkce free () knihovny stdlib.h. Tuto funkci používáme na konci programu těsně před příkazem return, aby se paměť haldy vrátila do počítačového systému před ukončením vašeho programu.



Předpokládejme, že budete tuto funkci ignorovat při psaní kódů C, které jsou zaměřeny zejména na dynamické přidělování paměti. V takovém případě přijde bod, kdy se ke své hromadě nebudete moci dále dostat, protože dojde paměť. Proto nikdy nesmíte zapomenout na tuto zdánlivě méně hodnotnou funkci, kdykoli dynamicky přebíráte odpovědnost za přidělování paměti.





Obecná syntaxe funkce free () v programovacím jazyce C je následující:

prázdnévolný, uvolnit (prázdné*ptr)

Zde klíčové slovo void před funkcí free () uvádí, že návratový typ této funkce je neplatný. Ukazatel v závorkách odpovídá umístění paměti, které je třeba uvolnit. Následující část popíše několik příkladů, ve kterých byla funkce free () použita k uvolnění dynamické paměti získané v C.



Příklady použití bezplatné funkce v C:

Funkci free () lze použít se všemi třemi funkcemi alokace paměti knihovny stdlib.h, tj. Malloc, calloc a realloc. Tuto funkci je nutné použít po uvedení základních funkcí vašeho programu, abyste mohli předat haldu paměti, kterou jste dynamicky přidělili během provádění programu, zpět do vašeho počítačového systému. Nyní se podívejme na několik příkladů, ve kterých byla funkce free () použita s funkcemi malloc a calloc v programovacím jazyce C.

Příklad č. 1: Použití bezplatné funkce s calloc v C:

C kód pro použití funkce free () s funkcí calloc () byl sdílen na následujícím obrázku:

Základním účelem tohoto kódu bylo dynamicky přiřadit nějakou paměť pomocí funkce calloc (). Za to jsme vzali velikost dynamické paměti a hodnoty této dynamické paměti jako vstup od uživatele. Poté jsme zamýšleli získané hodnoty vytisknout na terminál. Po celém tomto kódu máme naši funkci free (), která uvolní přidělenou dynamickou paměť kvůli spuštění našeho programu C.

Mírně upravená verze stejného kódu je také uvedena na níže uvedeném obrázku:

Tato upravená verze měla pouze vytisknout naše dynamicky přidělené hodnoty paměti před její ruční inicializací. Víme, že funkce calloc () inicializuje celou paměť nulami, než dojde k aktualizaci. Hlavním bodem, který je zde v tomto kódu třeba poznamenat, je, že i když byl tento kód poměrně kompaktní a jednoduchý, stále jsme využívali funkci free (), jakmile bylo dosaženo požadované funkce, jen aby se uvolnila hromada paměti, kterou jsme měli. získané v důsledku spuštění tohoto programu C.

Příklad č. 2: Použití bezplatné funkce s malloc v C:

C kód pro použití funkce free () s funkcí malloc () byl sdílen na obrázku připojeném níže:

Základním účelem tohoto kódu bylo dynamicky přiřadit nějakou paměť pomocí funkce malloc (). Za tímto účelem jsme přiřadili hodnoty této dynamické paměti ve smyčce for. Poté jsme zamýšleli získané hodnoty vytisknout na terminál pomocí další smyčky for. Po celém tomto kódu máme funkci free () těsně před příkazem return, který jednoduše uvolní přidělenou dynamickou paměť v důsledku spuštění našeho programu C.

Závěr:

Tento článek zdůraznil důležitost používání funkce free () v programovacím jazyce C v Linuxu. Většina uživatelů se domnívá, že alokační funkce souboru stdlib.h jsou důležitější; procházením tohoto článku však jasně vidíte, že funkce free () je stejně důležitá. Pomůže vám uvolnit dynamicky získanou paměť a zajistí, že vám nikdy nedojde paměť, kdykoli se v budoucnu pokusíte spustit své programy.