Memòria gratuïta en Do amb funció lliure

Free Memory C With Free Function



El llenguatge C és prou eficient per gestionar la seva gestió de memòria. Vol dir que sempre que declareu una variable normal de qualsevol tipus de dades en C, el llenguatge de programació és el responsable de distribuir o alliberar aquesta memòria un cop el programa s’hagi executat amb èxit. Tanmateix, en el cas de l’assignació dinàmica de memòria, ja que assigneu la memòria manualment, és per això que també l’heu d’alliberar pel vostre compte.

A la biblioteca stdlib.h, hi ha una funció dedicada per a aquest propòsit, és a dir, la funció free (). Avui explorarem la necessitat d’utilitzar aquesta funció en el llenguatge de programació C. Després d'això, veurem alguns exemples en què s'ha utilitzat aquesta funció per alliberar la memòria manualment en el llenguatge de programació C a Linux.







Necessitat d'utilitzar la funció gratuïta en C per alliberar la memòria del sistema:

Tots sabem que els nostres sistemes informàtics tenen poca memòria, per la qual cosa mai no hi podem executar infinits programes. En el cas de l’assignació automàtica de memòria, l’ordinador s’encarrega d’alliberar la memòria quan el programa hagi acabat l’execució. No obstant això, quan assignem la memòria manualment des de l’emmagatzematge dinàmic, l’hem d’alliberar d’una manera o d’una altra.



En cas contrari, eventualment ens quedarà sense memòria i no executarem més els nostres programes. Aquí és on entra en joc la funció free () de la biblioteca stdlib.h. Utilitzem aquesta funció al final d’un programa just abans de la declaració de retorn, de manera que la memòria dinàmica s’hauria de retornar al sistema informàtic abans de finalitzar el vostre programa.



Suposem que continuareu ignorant aquesta funció mentre escriviu els codis C especialment orientats a l'assignació dinàmica de memòria. En aquest cas, arribarà un moment en què no podreu accedir al vostre munt, ja que quedarà sense memòria. És per això que aquesta funció aparentment menys valuosa mai no s’ha d’oblidar sempre que assumeixi dinàmicament la responsabilitat de l’assignació de memòria.





La sintaxi general de la funció free () en el llenguatge de programació C és la següent:

buitgratuït (buit*ptr)

Aquí, la paraula clau void abans de la funció free () indica que el tipus de retorn d'aquesta funció és nul. El punter dins dels claudàtors correspon a la ubicació de memòria que cal repartir. A la secció següent es descriuen alguns exemples en què s’ha utilitzat la funció free () per alliberar la memòria dinàmica adquirida a C.



Exemples d'ús de la funció lliure en C:

La funció free () es pot utilitzar amb les tres funcions d’assignació de memòria de la biblioteca stdlib.h, és a dir, malloc, calloc i realloc. És obligatori fer servir aquesta funció després d’indicar la funcionalitat bàsica del vostre programa de manera que pugueu lliurar al vostre sistema informàtic la memòria dinàmica que heu assignat dinàmicament durant l’execució del programa. Ara, donem un cop d’ull a alguns exemples en què s’ha utilitzat la funció free () amb les funcions malloc i calloc en el llenguatge de programació C.

Exemple 1: utilitzar la funció lliure amb calloc en C:

El codi C per utilitzar la funció free () amb la funció calloc () s’ha compartit a la imatge següent:

El propòsit bàsic d’aquest codi era assignar una mica de memòria dinàmicament amb l’ajut de la funció calloc (). Per a això, hem pres la mida de la memòria dinàmica i els valors d'aquesta memòria dinàmica com a entrada de l'usuari. Després, teníem la intenció d'imprimir els valors adquirits al terminal. Després de tot aquest codi, tenim la nostra funció free () que alliberarà la memòria dinàmica assignada a causa de l'execució del nostre programa C.

A la imatge esmentada a continuació, també es mostra una versió lleugerament modificada del mateix codi:

Aquesta versió modificada només pretenia imprimir els nostres valors de memòria assignats dinàmicament abans de la inicialització manual. Sabem que la funció calloc () inicialitza tota la memòria amb zeros abans que es produeixi l’actualització. Tanmateix, el punt principal que cal assenyalar aquí en aquest codi és que, tot i que aquest codi era bastant compacte i senzill, seguim fent ús de la funció free () un cop aconseguida la funcionalitat desitjada només per alliberar la memòria heap que teníem adquirit com a resultat de l'execució d'aquest programa C.

Exemple 2: utilitzar la funció lliure amb malloc en C:

El codi C per utilitzar la funció free () amb la funció malloc () s'ha compartit a la imatge que s'afegeix a continuació:

El propòsit bàsic d’aquest codi era assignar una mica de memòria dinàmicament amb l’ajut de la funció malloc (). Per a això, hem assignat els valors d'aquesta memòria dinàmica en un bucle for. Després, teníem la intenció d'imprimir els valors adquirits al terminal amb l'ajut d'un altre bucle for. Després de tot aquest codi, tenim la nostra funció free () just abans de la sentència return que simplement alliberarà la memòria dinàmica assignada com a resultat de l'execució del nostre programa C.

Conclusió:

Aquest article emfatitzava la importància d’utilitzar la funció free () en el llenguatge de programació C a Linux. La majoria dels usuaris creuen que les funcions d'assignació del fitxer stdlib.h són més importants; no obstant això, en revisar aquest article, podeu veure clarament que la funció free () és igualment important. Us ajudarà a alliberar la memòria adquirida dinàmicament i us assegurarà que mai no us quedeu sense memòria sempre que proveu d'executar els vostres programes en el futur.