Szabad memória C -ben, ingyenes funkcióval

Free Memory C With Free Function



A C nyelv elég hatékony a memóriakezelés kezeléséhez. Ez azt jelenti, hogy amikor egy C típusú adattípus szabályos változóját deklarálja, maga a programozási nyelv felelős a memória felosztásáért vagy felszabadításáért, miután a programot sikeresen végrehajtották. Dinamikus memóriakiosztás esetén azonban, mivel manuálisan osztja fel a memóriát, ezért önállóan is fel kell szabadítania.

Az stdlib.h könyvtárban van egy erre a célra szolgáló funkció, azaz a free () függvény. Ma megvizsgáljuk annak szükségességét, hogy ezt a funkciót C programozási nyelven kell használni. Ezt követően néhány példát fogunk nézni, amelyekben ezt a funkciót használták fel a memória manuális felszabadítására a C programozási nyelven Linux alatt.







A C szabad funkciójának használata a rendszermemória felszabadításához:

Mindannyian tudjuk, hogy számítógépes rendszereink memóriája korlátozott, ezért soha nem tudunk végtelen programokat futtatni benne. Automatikus memóriakiosztás esetén a számítógép gondoskodik a memória felszabadításáról, amikor a program befejezte a végrehajtást. Amikor azonban manuálisan osztjuk ki a memóriát a halomból, akkor így vagy úgy fel kell szabadítanunk.



Ellenkező esetben végül elfogy a memória, és nem futtatjuk tovább a programjainkat. Itt jön szóba az stdlib.h könyvtár ingyenes () függvénye. Ezt a funkciót a program végén közvetlenül a visszatérési nyilatkozat előtt használjuk, hogy a halom memóriát a program befejezése előtt visszajuttassuk a számítógépes rendszerbe.



Tegyük fel, hogy továbbra is figyelmen kívül hagyja ezt a funkciót, miközben olyan C -kódokat ír, amelyek különösen a dinamikus memóriakiosztásra irányulnak. Ebben az esetben eljön az a pont, amikor nem férhet hozzá a halomhoz, mert elfogy a memória. Éppen ezért ezt a látszólag kevésbé értékes funkciót soha nem szabad elfelejteni, amikor dinamikusan vállalja a memóriakiosztás felelősségét.





A free () függvény általános szintaxisa a C programozási nyelvben a következő:

üresingyenes (üres*ptr)

Itt a free () függvény előtti void kulcsszó azt állítja, hogy a függvény visszatérési típusa érvénytelen. A zárójelben lévő mutató megfelel annak a memóriahelynek, amelyet el kell helyezni. A következő szakasz néhány példát ír le, amelyekben a free () függvényt használták a C -ben megszerzett dinamikus memória felszabadítására.



Példák a C szabad funkció használatára:

A free () függvény az stdlib.h könyvtár mindhárom memóriakiosztási funkciójával használható, azaz malloc, calloc és realloc. Kötelező használni ezt a funkciót a program alapvető funkcióinak megadása után, hogy a program végrehajtása során dinamikusan kiosztott halom memóriát vissza tudja adni a számítógépes rendszerének. Most nézzünk néhány példát, amelyekben a free () függvényt használták a C programozási nyelvű malloc és calloc függvényekkel.

1. példa: A szabad funkció használata calloc -val C -ben:

Az ingyenes kép () függvény calloc () függvénnyel való használatának C kódját megosztottuk az alábbi képen:

Ennek a kódnak az volt az alapvető célja, hogy dinamikusan hozzárendeljen néhány memóriát a calloc () függvény segítségével. Ehhez a dinamikus memória méretét és ennek a dinamikus memóriának az értékeit tekintettük a felhasználó bemenetének. Ezután a megszerzett értékeket ki akartuk nyomtatni a terminálra. Az egész kód után van egy ingyenes () függvényünk, amely felszabadítja a kiosztott dinamikus memóriát a C programunk végrehajtása miatt.

Ugyanezen kód kissé módosított változata is látható az alábbi idézetben:

Ez a módosított verzió csak a dinamikusan kiosztott memóriaértékek kinyomtatását célozta a kézi inicializálás előtt. Tudjuk, hogy a calloc () függvény nullákkal inicializálja az egész memóriát, mielőtt a aktualizálás megtörténik. A legfontosabb megjegyzés azonban ebben a kódban az, hogy bár ez a kód meglehetősen kompakt és egyszerű volt, mégis használtuk a free () függvényt, miután elértük a kívánt funkciót, csak hogy felszabadítsuk a halom memóriát. a C program végrehajtása eredményeként szerzett.

2. példa: A szabad funkció használata malloc -val C -ben:

Az ingyenes () függvény és a malloc () függvény C -kódját megosztottuk az alábbi képen:

Ennek a kódnak az volt az alapvető célja, hogy a malloc () függvény segítségével dinamikusan hozzárendeljen bizonyos memóriákat. Ehhez a for ciklusban hozzárendeltük ennek a dinamikus memóriának az értékeit. Ezután szándékunk volt kinyomtatni a megszerzett értékeket a terminálon egy másik ciklus segítségével. A teljes kód után a free () függvény közvetlenül a visszatérési utasítás előtt áll, amely egyszerűen felszabadítja a kiosztott dinamikus memóriát a C programunk végrehajtása következtében.

Következtetés:

Ez a cikk hangsúlyozta a free () függvény fontosságát a C programozási nyelvben Linux alatt. A felhasználók többsége úgy véli, hogy az stdlib.h fájl allokációs funkciói fontosabbak; azonban, ha végigolvassa ezt a cikket, világosan láthatja, hogy a free () függvény ugyanolyan fontos. Segít felszabadítani a dinamikusan megszerzett memóriát, és biztosítja, hogy soha ne fogyjon ki a memória, amikor a jövőben megpróbálja végrehajtani programjait.