1
resposta

duvida sobre o free

Entendi a parte que ele serve pra liberar a memoria que eu pedi antes, mas por exemplo, ao fim da execução do meu programa, a memoria que eu peguei dinamicamente nao sera descartada automaticamente pelo sistema? E se sim, em quais casos praticos eu vou realmente precisar usar o free? Claro que é uma pergunta bem besta, eu só n enxerguei utilidade real, visto que acabo de ter a primeira interação com isso é normal.

1 resposta

Olá, Vítor!

O sistema Operacional realmente faz o gerenciamento de memória, mas pense na seguinte situação:

Estamos desenvolvendo um sistema completo para uma grande empresa, e este sistema tem vários módulos, repletos de funções e rotinas internas. Ao utilizar uma funcionalidade desse sistema, alocamos uma grande quantidade de memória e não a liberamos ao fim da execução dessa função. Neste momento, nosso programa ainda retém o controle do gerenciamento de memória, impedindo que o Sistema Operacional interfira para liberar a memória que não está sendo mais usada, mas ainda está alocada.

Creio que a função free() seja necessária principalmente nesses casos, onde na mesma execução do programa, corremos o risco de alocar grande quantidade de memória que pode fazer falta posteriormente, causando até mesmo a "quebra" daquele programa por falta de memória.

Então, por via das dúvidas, sempre utlize o free() após alocar memória! Isso é praticamente uma regra ao se programar em C!

Espero ter ajudado!

Boa sorte em seus estudos!