Vaba mälu C -vormingus koos tasuta funktsiooniga

Free Memory C With Free Function

C keel on mäluhaldusega tegelemiseks piisavalt tõhus. See tähendab, et iga kord, kui deklareerite C -tüüpi mis tahes andmetüübi korrapärase muutuja, vastutab programmeerimiskeel ise selle mälu jaotamise või vabastamise eest, kui teie programm on edukalt käivitatud. Dünaamilise mälu eraldamise korral, kuna eraldate mälu käsitsi, peate selle ka ise vabastama.

Teegis stdlib.h on selle funktsiooni täitmiseks spetsiaalne funktsioon, st funktsioon free (). Täna uurime vajadust kasutada seda funktsiooni C programmeerimiskeeles. Pärast seda vaatame mõningaid näiteid, milles seda funktsiooni on kasutatud mälu käsitsi vabastamiseks Linuxi C -programmeerimiskeeles.



Süsteemi mälu vabastamiseks on vaja kasutada vaba funktsiooni C -s:

Me kõik teame, et meie arvutisüsteemidel on piiratud mälu, mistõttu ei saa me selles kunagi lõputuid programme käitada. Mälu automaatse eraldamise korral hoolitseb arvuti mälu vabastamise eest, kui teie programm on täitmise lõpetanud. Kui aga mälu hunnikust käsitsi eraldame, peame selle ühel või teisel viisil vabastama.



Vastasel juhul hakkab meil lõpuks mälu otsa saama ja me ei käivita oma programme enam. Siin tuleb mängu raamatukogu stdlib.h tasuta () funktsioon. Kasutame seda funktsiooni programmi lõpus vahetult enne tagastamisavaldust, et kuhjamälu tuleks enne teie programmi lõpetamist arvutisüsteemi tagasi saata.



Oletame, et ignoreerite seda funktsiooni, kirjutades oma C -koode, mis on eriti suunatud dünaamilisele mälu eraldamisele. Sel juhul saabub hetk, mil te ei pääse oma hunnikule enam juurde, kuna sellel saab mälu otsa. Sellepärast ei tohi seda näiliselt vähem väärtuslikku funktsiooni kunagi unustada, kui võtate dünaamiliselt mälu jaotamise vastutuse.

Funktsiooni free () üldine süntaks C programmeerimiskeeles on järgmine:

tühinetasuta (tühine*ptr)

Siin ütleb tühi märksõna enne funktsiooni free (), et selle funktsiooni tagastustüüp on tühine. Sulgudes olev kursor vastab mälu asukohale, mis tuleb jaotada. Järgmises osas kirjeldatakse mõningaid näiteid, milles funktsiooni free () on kasutatud C -s omandatud dünaamilise mälu vabastamiseks.



Näited vaba funktsiooni kasutamisest C -s:

Funktsiooni free () saab kasutada koos kõigi kolme stdlib.h raamatukogu mälu eraldamise funktsiooniga, st malloc, calloc ja realloc. Selle funktsiooni kasutamine pärast programmi põhifunktsioonide esitamist on kohustuslik, et saaksite programmi täitmise ajal dünaamiliselt eraldatud hunnikmälu oma arvutisüsteemile tagasi anda. Nüüd vaatame mõningaid näiteid, kus funktsiooni free () on kasutatud koos C -programmeerimiskeele funktsioonidega malloc ja calloc.

Näide 1: Vaba funktsiooni kasutamine koos calloc'iga C -s:

Funktsiooni free () kasutamise funktsioon koos calloc () funktsiooniga on C -koodi jagatud alloleval pildil:

Selle koodi põhieesmärk oli funktsiooni calloc () abil dünaamiliselt mälu määrata. Selleks oleme võtnud kasutaja sisendiks dünaamilise mälu suuruse ja selle dünaamilise mälu väärtused. Seejärel kavatsesime saadud väärtused terminalile printida. Pärast kogu seda koodi on meil tasuta () funktsioon, mis vabastab eraldatud dünaamilise mälu meie C -programmi täitmise tõttu.

Sama koodi veidi muudetud versioon on näidatud ka allpool viidatud pildil:

See muudetud versioon oli mõeldud ainult meie dünaamiliselt eraldatud mälu väärtuste printimiseks enne selle käsitsi vormindamist. Me teame, et funktsioon calloc () initsialiseerib kogu mälu nullidega enne, kui see toimub. Selle koodi peamine märkus on aga see, et kuigi see kood oli üsna kompaktne ja lihtne, kasutasime siiski funktsiooni free (), kui soovitud funktsionaalsus oli saavutatud ainult selleks, et vabastada meie kuhjamälu. omandatud selle C programmi täitmise tulemusena.

Näide # 2: Vaba funktsiooni kasutamine koos mallociga C -s:

Funktsiooni free () kasutamise funktsioon koos malloc () funktsiooniga on jagatud alloleval pildil:

Selle koodi põhieesmärk oli malloc () funktsiooni abil dünaamiliselt mälu määrata. Selleks oleme selle dünaamilise mälu väärtused määranud for -ahelasse. Seejärel kavatsesime saadud väärtused terminalile teise silmuse jaoks printida. Pärast kogu seda koodi on meil vaba () funktsioon vahetult enne tagastamislauset, mis vabastab eraldatud dünaamilise mälu meie C -programmi täitmise tulemusena.

Järeldus:

Selles artiklis rõhutati funktsiooni free () kasutamise tähtsust Linuxi C -programmeerimiskeeles. Enamik kasutajaid usub, et faili stdlib.h eraldamisfunktsioonid on olulisemad; seda artiklit läbi vaadates näete aga selgelt, et funktsioon free () on sama oluline. See aitab vabastada dünaamiliselt omandatud mälu ja tagab, et mälu ei saa kunagi otsa, kui proovite oma programme tulevikus käivitada.