Sistema de Imformação
A alocação dinâmica é o processo que aloca memória em tempo de execução. Ela é utilizada quando não se sabe ao certo quanto de memória será necessário para o armazenamento das informações, podendo ser determinadas em tempo de execução conforme a necessidade do programa. Dessa forma evita-se o desperdício de memória. No padrão C ANSI existem 4 funções para alocações dinâmica pertencentes a biblioteca stdlib.h. São elas malloc(), calloc(), realloc() e free(). Sendo que as mais utilizadas são as funções malloc() e free(). Além das funções mencionadas acima existem outras que não serão abordadas neste relatório, pois não são funções padrões. A alocação dinâmica é muito utilizada em problemas de estrutura de dados, por exemplo, listas encadeadas, pilhas, filas, arvores binárias e grafos. As funções malloc() e calloc() são responsáveis por alocar memória, a realloc() por realocar a memória e por último a free() fica responsável por liberar a memória alocada. Nos tópicos a seguir veremos alguns exemplos, porém frisando somente os comandos malloc() e free().
Alocação Estática de Memória
Na alocação estática o espaço de memória, que as variáveis irão utilizar durante a execução do programa, é definido no processo de compilação. Não sendo possível alterar o tamanho desse espaço durante a execução do programa.
Alocação Dinâmica de Memória
Na alocação dinâmica o espaço de memória, que as variáveis irão utilizar durante a execução do programa, é definido enquanto o programa está em execução. Ou seja, quando não se sabe ao certo quanto de memória será necessário para o armazenamento das informações, podendo ser determinadas, sob demanda, em tempo de execução conforme a necessidade do programa. No padrão C ANSI existem quatro funções para alocação dinâmica de memória:
1. malloc()
2. calloc()
3. realloc()
4. free() Todas elas pertencem a biblioteca . Iremos nos concentrar nas funções malloc() e free(), pois são as mais