Aula 3 Aloca o de Mem ria
ESTRUTURA DE DADOS
Alocação de Memória
Profº. Ailton de Souza Gomes ailton.gomes@anhanguera.com 2
Memória Estática e Dinâmica:
Todo programa precisa utilizar memória para ser executado.
Quando um programa inicia sua execução, ele começa a solicitar memória ao sistema operacional, ou seja, faz a alocação de memória necessária para a sua execução.
Nem sempre a memória alocada na iniciação do programa é suficiente, então o programa também precisa alocar memória durante sua execução
A linguagem C permite dois tipos de alocação de memória:
Alocação estática e alocação dinâmica
3
Alocação Estática da 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.
Exemplos:
/*Espaço reservado para um valor do tipo char.
O char ocupa 1 byte na memória.*/ char a;
/*Espaço reservado para dez valores do tipo int.
O int ocupa 4 bytes na memória.*/ int x;
4
Alocação Estática da Memória int vetor[10];
double matriz[8];
/*Espaço reservado para valores do tipo double. O double ocupa 8 bytes na memória.*/
Este tipo de alocação é utilizado quando se sabe de antemão a quantidade de memória que será utilizada pelo programa. 5
Explicando Memória e Alocação:
6
Memória
A memória utilizada por um programa de computador é dividida em:
Segmento de Código
Segmento de Dados
Stack
Heap
Heap
Cada programa em execução tem seu próprio Seg. Código,
Seg. De Dados, Stack e Heap
Espaço Livre de Memória
Stack
Segmento de Dados
Segmento de Código
7
Memória
O Segmento de Código é a parte da memória que armazena o “código de máquina” do programa É estático em tamanho e
Heap
conteúdo (de acordo com o executável) Espaço Livre de Memória
Geralmente, o bloco de
Stack
segmento de código é somente leitura
Segmento de Dados
As instruções do programa compilado e em execução não pode ser alterado
8
Segmento de Código