Memorie gratuită în C cu funcție gratuită

Free Memory C With Free Function



Limbajul C este suficient de eficient pentru a gestiona gestionarea memoriei sale. Înseamnă că ori de câte ori declarați o variabilă obișnuită de orice tip de date în C, limbajul de programare în sine este responsabil pentru alocarea sau eliberarea acestei memorii odată ce programul dvs. a fost executat cu succes. Cu toate acestea, în cazul alocării dinamice a memoriei, deoarece alocați memoria manual, de aceea trebuie să o eliberați singură.

În biblioteca stdlib.h, există o funcție dedicată pentru acest scop, adică funcția free (). Astăzi, vom explora necesitatea de a utiliza această funcție în limbajul de programare C. După aceea, vom analiza câteva exemple în care această funcție a fost utilizată pentru a elibera manual memoria în limbajul de programare C în Linux.







Necesitatea utilizării funcției gratuite în C pentru eliberarea memoriei de sistem:

Știm cu toții că sistemele noastre de calcul au o memorie limitată, din care cauză nu putem rula niciodată programe infinite în ea. În cazul alocării automate a memoriei, computerul se ocupă de eliberarea memoriei atunci când programul dvs. a terminat execuția. Cu toate acestea, atunci când alocăm memoria manual din heap, trebuie să o eliberăm dintr-un fel sau altul.



În caz contrar, vom rămâne în cele din urmă lipsă de memorie și nu vom rula programele noastre mai departe. Aici intră în joc funcția free () a bibliotecii stdlib.h. Folosim această funcție la sfârșitul unui program chiar înainte de declarația return, astfel încât memoria heap să fie returnată sistemului de computer înainte de terminarea programului.



Să presupunem că veți continua să ignorați această funcție în timp ce vă scrieți codurile C care sunt orientate în special către alocarea dinamică a memoriei. În acest caz, va apărea un punct când nu veți mai putea accesa heap-ul, deoarece acesta va rămâne fără memorie. De aceea, această funcție aparent mai puțin valoroasă nu trebuie uitată niciodată ori de câte ori vă asumați dinamic responsabilitatea alocării memoriei.





Sintaxa generală a funcției free () în limbajul de programare C este după cum urmează:

nulliber (nul*ptr)

Aici, cuvântul cheie void dinaintea funcției free () afirmă că tipul returnat al acestei funcții este nul. Pointerul din paranteze corespunde locației de memorie care trebuie alocată. Următoarea secțiune va descrie câteva exemple în care funcția free () a fost utilizată pentru eliberarea memoriei dinamice dobândite în C.



Exemple de utilizare a funcției gratuite în C:

Funcția free () poate fi utilizată cu toate cele trei funcții de alocare a memoriei din biblioteca stdlib.h, adică malloc, calloc și realloc. Este obligatoriu să utilizați această funcție după ce ați specificat funcționalitatea de bază a programului dvs., astfel încât să puteți preda memoria heap pe care ați alocat-o în mod dinamic în timpul execuției programului înapoi la sistemul computerului. Acum, să aruncăm o privire la câteva exemple în care funcția free () a fost utilizată cu funcțiile malloc și calloc în limbajul de programare C.

Exemplul # 1: Utilizarea funcției gratuite cu calloc în C:

Codul C pentru utilizarea funcției free () cu funcția calloc () a fost distribuit în imaginea de mai jos:

Scopul de bază al acestui cod a fost de a atribui o parte din memorie dinamic cu ajutorul funcției calloc (). Pentru aceasta, am luat dimensiunea memoriei dinamice și valorile acestei memorii dinamice ca intrări de la utilizator. Apoi, am intenționat să imprimăm valorile dobândite pe terminal. După acest întreg cod, avem funcția noastră free () care va elibera memoria dinamică alocată datorită executării programului nostru C.

O versiune ușor modificată a aceluiași cod este prezentată și în imaginea citată mai jos:

Această versiune modificată a intenționat doar să imprime valorile noastre de memorie alocate dinamic înainte de inițializarea manuală. Știm că funcția calloc () inițializează întreaga memorie cu zerouri înainte ca actualizarea să aibă loc. Cu toate acestea, principalul punct care trebuie remarcat aici în acest cod este că, deși acest cod a fost destul de compact și simplu, am folosit în continuare funcția free () odată ce funcționalitatea dorită a fost atinsă doar pentru a elibera memoria heap pe care o aveam dobândit ca urmare a executării acestui program C.

Exemplul # 2: Utilizarea funcției gratuite cu malloc în C:

Codul C pentru utilizarea funcției free () cu funcția malloc () a fost partajat în imaginea anexată mai jos:

Scopul de bază al acestui cod a fost de a atribui o anumită memorie dinamic cu ajutorul funcției malloc (). Pentru aceasta, am atribuit valorile acestei memorii dinamice într-o buclă for. Apoi, am intenționat să imprimăm valorile dobândite pe terminal cu ajutorul altei bucle for. După acest întreg cod, avem funcția free () chiar înainte de declarația return care va elibera pur și simplu memoria dinamică alocată ca urmare a executării programului nostru C.

Concluzie:

Acest articol a subliniat importanța utilizării funcției free () în limbajul de programare C în Linux. Majoritatea utilizatorilor consideră că funcțiile de alocare ale fișierului stdlib.h sunt mai importante; totuși, parcurgând acest articol, puteți vedea clar că funcția free () este la fel de importantă. Vă va ajuta să eliberați memoria dobândită dinamic și să vă asigurați că nu rămâneți niciodată fără memorie ori de câte ori încercați să vă executați programele în viitor.