Variáveis Dinâmicas


Características básicas:
- São anônimas (não podem ser referenciadas pelo nome)
- São alocadas em uma área especial da memória (heap)
- Seu espaço de memória é alocado e desalocado no momento que o programador desejar.

Como as variáveis dinâmicas não possuem um nome, a única maneira de referenciá-las é através de um ponteiro.

Biblioteca utilizada: < malloc.h >

Criação da variável dinâmica:

< tipo > * < nome_variavel >;
< nome_variavel > = ( < tipo > *) malloc (sizeof (< tipo >));

O operador sizeof(), retorna o tamanho, em bytes, do tipo ou da expressão entre parênteses.

A função malloc(), retorna um ponteiro para uma área livre de memória de dimensão estabeleciada pelo programador. A área alocada pela função malloc() é marcada como em uso, a fim de que, em chamadas futuras, o seu endereço não seja atribuído a outros ponteiros.

Quando o programador não precisar mais da variável, ele deve desalocá-la, pois o espaço de memória não é liberado automaticamente, como no caso das variáreis estáticas. isso deve ser feito com a seguinte instrução:
free (< nome_variavel >);

Ex:
int * p;
p=(int *) malloc (sizeof(int));
*p=3;
printf("%d\n", *p);
free(p);