Alocação de memória

994 palavras 4 páginas
Alocação dinâmica de memória
As declarações abaixo alocam memória para diversas variáveis. A alocação é estática, pois acontece antes que o programa comece a ser executado: char c; int i; int v[10];
Às vezes, a quantidade de memória a alocar só se torna conhecida durante a execução do programa. Para lidar com essa situação é preciso recorrer à alocação dinâmica de memória. A alocação dinâmica é gerenciada pelas funções malloc e free, que estão na biblioteca stdlib. Para usar esta biblioteca, é preciso dizer #include <stdlib.h> no início do programa.
Função malloc
A função malloc (abreviatura de memory allocation) aloca um bloco de bytes consecutivos na memória do computador e devolve oendereço desse bloco. O número de bytes é especificado no argumento da função. No seguinte fragmento de código, malloc aloca 1 byte: char *ptr; ptr = malloc (1); scanf ("%c", ptr);
O endereço devolvido por malloc é do tipo "genérico" void *. O programador armazena esse endereço num ponteiro de tipo apropriado. No exemplo acima, o endereço é armazenado num ponteiro-para-char.
Para alocar um tipo-de-dado que ocupa vários bytes, é preciso recorrer ao operador sizeof, que diz quantos bytes o tipo especificado tem: typedef struct { int dia, mes, ano; } data; data *d; d = malloc (sizeof (data)); d->dia = 31; d->mes = 12; d->ano = 2008;
[As aparências enganam: sizeof não é uma função.]
Overhead. Cada invocação de malloc aloca um bloco de bytes consecutivos maior que o solicitado: os bytes adicionais são usados para guardar informações administrativas sobre o bloco de bytes (essas informações permitem que o bloco seja corretamente desalocado, mais tarde, pela função free). O número de bytes adicionais pode ser grande, mas não depende do número de

Relacionados

  • alocacao de memoria
    403 palavras | 2 páginas
  • Alocação de Memória
    935 palavras | 4 páginas
  • Alocação de memória
    2097 palavras | 9 páginas
  • Alocação de memória
    908 palavras | 4 páginas
  • Alocação dinâmica de memória
    1055 palavras | 5 páginas
  • 1) ALOCAÇÃO DE MEMÓRIA
    397 palavras | 2 páginas
  • Alocação Dinâmica da memória
    1569 palavras | 7 páginas
  • Mecanismo para alocação de memória
    1582 palavras | 7 páginas
  • A importância da memória e as estratégias de alocação de memória em sistemas operacionais.
    575 palavras | 3 páginas
  • Programação em c com alocação básica de memória
    677 palavras | 3 páginas