La memòria assignada mitjançant les funcions malloc i calloc no es desassigna per si sola. Per tant, s'utilitza el mètode free sempre que es produeixi l'assignació de memòria dinàmica. Ajuda a reduir el malbaratament de memòria alliberant-la.
Com es fa lliure la memòria assignada?
En C, la funció de biblioteca malloc s'utilitza per assignar un bloc de memòria a la pila. El programa accedeix a aquest bloc de memòria mitjançant un punter que retorna malloc. Quan la memòria ja no es necessita, el punter es passa a free que desassigna la memòria perquè es pugui utilitzar per a altres finalitats.
Què passa si no allibereu la memòria assignada?
En la majoria dels casos, desassignar memòria just abans de sortir del programa no té sentit. El sistema operatiu el recuperarà de totes maneres. Free tocarà i paginarà els objectes morts; el sistema operatiu no ho farà. Conseqüència: aneu amb compte amb els "detectors de fuites" que compten les assignacions.
L'assignació de memòria és cara?
Una mesura ingenua del cost d'assignar i alliberar grans blocs de memòria conclouria que costa uns 7,5 μs per cada alloc/parell lliure. Tanmateix, hi ha tres costos separats per MB per a les grans assignacions.
La reassignació pot alliberar l'espai de memòria assignat, en cas afirmatiu, com?
La funció de reallocació assigna, reassigna o allibera el bloc de memòria especificat per old_blk d'acord amb les regles següents: Si old_blk és NULL, un nou bloc de memòria de mida bytes ésassignat. Si la mida és zero, es crida a la funció lliure per alliberar la memòria apuntada per old_blk.