alocacao dinamica
Alocação Dinâmica de
Memória
1
Alocação Dinâmica da 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 ou liberação dinâmica de memória da área de HEAP em um computador, sendo elas: 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 utilizadas.
2
Alocação Dinâmica da Memória char *p_char; p_char = (char *) malloc(4);
É importante conhecer o tamanho em bytes de cada tipo de dado escalar (original) da Linguagem C, pois somente assim será possível alocar e manipular as áreas de memória corretamente. Por exemplo, a alocação sugerida no Exemplo acima conseguirá 4 bytes da área de HEAP, onde poderão ser armazenados 4 valores do tipo char.
Ainda nesse exemplo, o ponteiro p_char receberá o endereço do primeiro byte que foi alocado dinamicamente para manipulação de
4 bytes que estarão disponíveis na memória do computador para armazenar somente 4 caracteres continuamente, pois o mesmo foi moldado (ou convertido) para o tipo de dado char. Esta área é alocada como um vetor, ou seja, de maneira continua na memória após sua alocação dinâmica, onde o ponteiro só armazena o endereço do primeiro byte disponibilizado de toda esta área.
3
Diferenças, Vantagens e Desvantagens
Entre Alocação Estática e Alocação Dinâmica:
Na alocação estática, o espaço de memória é definido durante o processo de compilação, já na alocação dinâmica o espaço de memória e reservado durante a execução do programa. Na alocação estática não é possível alterar