Memória Livre em C com Função Livre

Free Memory C With Free Function



A linguagem C é eficiente o suficiente para lidar com seu gerenciamento de memória. Isso significa que sempre que você declara uma variável regular de qualquer tipo de dado em C, a própria linguagem de programação é responsável por desalocar ou liberar essa memória uma vez que seu programa tenha sido executado com sucesso. No entanto, no caso de alocação de memória dinâmica, como você está alocando a memória manualmente, é por isso que você também deve liberá-la.

Na biblioteca stdlib.h, há uma função dedicada para atender a esse propósito, ou seja, a função free (). Hoje, exploraremos a necessidade de usar essa função na linguagem de programação C. Depois disso, veremos alguns exemplos em que essa função foi usada para liberar memória manualmente na linguagem de programação C no Linux.







Necessidade de usar a função livre em C para liberar a memória do sistema:

Todos nós sabemos que nossos sistemas de computador têm memória limitada, por isso nunca podemos executar programas infinitos nela. No caso de alocação automática de memória, o computador se encarrega de liberar a memória quando o programa termina sua execução. No entanto, quando alocamos a memória manualmente do heap, temos que liberá-la de uma forma ou de outra.



Caso contrário, eventualmente ficaremos com falta de memória e não executaremos mais nossos programas. É aqui que a função free () da biblioteca stdlib.h entra em ação. Usamos essa função no final de um programa, logo antes da instrução return, para que a memória heap seja retornada ao sistema do computador antes do término de seu programa.



Suponha que você continue ignorando essa função enquanto escreve seus códigos C que são particularmente direcionados à alocação de memória dinâmica. Nesse caso, chegará um ponto em que você não poderá mais acessar seu heap, pois ele ficará sem memória. É por isso que essa função aparentemente menos valiosa nunca deve ser esquecida, sempre que você assumir a responsabilidade pela alocação de memória dinamicamente.





A sintaxe geral da função free () na linguagem de programação C é a seguinte:

vaziogratuitamente (vazio*ptr)

Aqui, a palavra-chave void antes da função free () afirma que o tipo de retorno dessa função é nulo. O ponteiro dentro dos colchetes corresponde ao local da memória que precisa ser desalocado. A seção a seguir descreverá alguns exemplos nos quais a função free () foi usada para liberar a memória dinâmica adquirida em C.



Exemplos de uso da função livre em C:

A função free () pode ser usada com todas as três funções de alocação de memória da biblioteca stdlib.h, ou seja, malloc, calloc e realloc. É obrigatório usar esta função depois de declarar a funcionalidade básica de seu programa para que você possa devolver a memória heap que alocou dinamicamente durante a execução do programa ao sistema do seu computador. Agora, vamos dar uma olhada em alguns exemplos nos quais a função free () foi usada com as funções malloc e calloc na linguagem de programação C.

Exemplo # 1: Usando a função Free com calloc em C:

O código C para usar a função free () com a função calloc () foi compartilhado na imagem abaixo:

O propósito básico deste código era atribuir alguma memória dinamicamente com a ajuda da função calloc (). Para isso, tomamos o tamanho da memória dinâmica e os valores desta memória dinâmica como entrada do usuário. Em seguida, pretendíamos imprimir os valores adquiridos no terminal. Após todo este código, temos nossa função free () que irá liberar a memória dinâmica alocada devido à execução de nosso programa C.

Uma versão ligeiramente modificada do mesmo código também é mostrada na imagem citada abaixo:

Esta versão modificada destina-se apenas a imprimir nossos valores de memória alocados dinamicamente antes de sua inicialização manual. Sabemos que a função calloc () inicializa toda a memória com zeros antes que ocorra a atualização. No entanto, o ponto principal a ser observado aqui neste código é que, embora este código fosse bastante compacto e simples, ainda usamos a função free () uma vez que a funcionalidade desejada foi alcançada apenas para liberar a memória heap que tínhamos adquirido como resultado da execução deste programa C.

Exemplo # 2: Usando a função Free com malloc em C:

O código C para usar a função free () com a função malloc () foi compartilhado na imagem anexada abaixo:

O propósito básico deste código era atribuir alguma memória dinamicamente com a ajuda da função malloc (). Para isso, atribuímos os valores dessa memória dinâmica em um loop for. Em seguida, pretendíamos imprimir os valores adquiridos no terminal com a ajuda de outro loop for. Depois de todo esse código, temos nossa função free () logo antes da instrução return que simplesmente liberará a memória dinâmica alocada como resultado da execução de nosso programa C.

Conclusão:

Este artigo enfatizou a importância de usar a função free () na linguagem de programação C no Linux. A maioria dos usuários acredita que as funções de alocação do arquivo stdlib.h são mais importantes; entretanto, ao ler este artigo, você pode ver claramente que a função free () é igualmente importante. Isso o ajudará a liberar a memória adquirida dinamicamente e garantir que você nunca fique sem memória sempre que tentar executar seus programas no futuro.