Alocacao De Memorias
Ensaios: Alocacao De Memorias. Pesquise 862.000+ trabalhos acadêmicosPor: romamelo • 9/10/2014 • 208 Palavras (1 Páginas) • 241 Visualizações
Na alocação dinâmica o espaço para as variáveis é alocado dinamicamente durante a execução do programa, já na estática é reservada no início da execução.
EXEMPLOS DE ALOCAÇÃO ESTÁTICA
void quad(int n) {
n = n * n;
printf("n = %d\n"; n);
}
int main() {
int n;
n = 3;
quad(n);
printf("n = %d\n", n);
return 0;
}
void quad(int n) {
n = n * n;
printf("n = %d\n"; n);
}
int main() {
int n;
scanf("%d", &n);
if (n > 10) {
int x = 10;
quad(x);
}
else
quad(n);
printf("n = %d\n", n);
ALOCAÇÃO DINAMICA
As variáveis alocadas dinamicamente são chamadas de ponteiros ou apontadores (pointers), pois armazenam o endereço de memória de uma variável.
• Número inteiro (32 ou 64 bits) indicando um endereço da memória.
• A memória alocada dinamicamente faz parte de uma área da memória chamada heap.
• Basicamente, o programa aloca e desloca porções de memóriado heap durante a execução.
A memória deve ser liberada após o término de seu uso
• A liberação deve ser feita por quem fez a alocação:
- Alocação Estática: compilador
- Alocação Dinâmica: programador
ALOCAÇÃO DINAMICA X ESTATICA
Declaração da variável
• Tipo *p; Tipo p;
• Alocação de memória para a variável (apenas alocação dinâmica)
• p = (Tipo*) malloc (sizeof(Tipo));
• Liberação de memória (apenas alocação dinâmica)
• free (p);
• Conteúdo da variável
• *p; p;
• Referência da variável (endereço de memória)
• p; &p;
• Valor nulo para um apontador (apenas alocação dinâmica)
• NULL;
...