Alocação dinâmica

A alocação dinâmica é o processo que aloca memória em tempo de execução. Ela é utilizada quando não se sabe ao certo quanto de memória será necessário para o armazenamento das informações, podendo ser determinadas em tempo de execução conforme a necessidade do programa. Dessa forma evita-se o desperdício de memória.

[ Hits: 29.486 ]

Por: Daniel Gurgel Pinheiro em 02/11/2006


Visão mais detalhada da memória do computador



Para a representação das variáveis na memória do computador cada variável ficava guardada numa posição de memória. Por exemplo, se fizéssemos um programa que contivesse a seguinte declaração:

int x = 9;

o x poderia ir parar à posição de memória E2 quando o programa fosse executado. Na realidade, as coisas não são bem assim. Cada posição de memória corresponde apenas a um byte e uma variável inteira ocupa geralmente 4 bytes. Ou seja, o número 9 não vai estar representado numa única posição de memória, mas sim em 4 posições de memória (ex: E2, E3, E4 e E5). Aliás, aquilo que está nessas 4 posições de memória é a representação em binário do número 9. A figura que se segue dá esta visão mais detalhada da memória.


Apesar da variável x estar localizada nos endereços E2, E3, E4 e E5, costuma dizer-se que o endereço da variável x é E2. Isto é, o endereço de uma variável é o endereço do primeiro byte que a variável ocupa.

    Próxima página

Páginas do artigo
   1. Visão mais detalhada da memória do computador
   2. E os arrays? Como é que são guardados?
   3. Alocação dinâmica de memória
   4. Veja programa como exemplo
Outros artigos deste autor

Acessando a porta paralela via Linux

Leitura recomendada

Desenvolvendo para microcontroladores em GNU/Linux

Tutorial OpenGL v3.0

Alocação dinâmica de memória em C

O Produtor e o Consumidor

OneAPI: A plataforma da Intel para facilitar o desenvolvimento com chips Intel, AMD, ARM, NVIDIA POWER e FPGA

  
Comentários
[1] Comentário enviado por tuxSoares em 02/11/2006 - 10:31h

Não entendi muita coisa mais tá de parabéns! Continue ajudando nossa comunidade, artigos como o seu são impressindiveis para o desenvolvimento intelectual de quem deseja aprender.

Vlw :)

[2] Comentário enviado por Reideer em 02/11/2006 - 10:47h

?
e como ficam lista e fila nesta historia?
acredito que tenha muitos metodos para alocação dinâmica.

[3] Comentário enviado por AboutDiego em 02/11/2006 - 23:34h

Vale ressaltar que dependendo do seu compilador pode também possuir o arquivo oculo malloc.h, tem o mesmo efeito que stdlib.h na hora da alocação dinâmica só muda em que na parte onde você coloca p=(int*)malloc, você colocará p=(int*)calloc

Obs: Somente para abrir um pouco mais o leque ^^. falouz

[4] Comentário enviado por balani em 03/11/2006 - 20:58h

Interessante, eu só não entendi ainda onde usar.

[5] Comentário enviado por AboutDiego em 04/11/2006 - 00:15h

Como utilizar o alocamento de memória ou como utilizar o documento??

[6] Comentário enviado por glaudiston em 30/07/2007 - 14:21h

Um exemplo prático seria quando vc quer ler um arquivo e não sabe o tamanho dele... pode ser gigantesco ou minúsculo.
Outros exemplos inclusive de controle de arrays multidimensionais seguem:
http://vergil.chemistry.gatech.edu/resources/programming/c-tutorial/dynamic.html
http://www.lysator.liu.se/c/c-faq/c-2.html

[7] Comentário enviado por juniomundo em 06/11/2010 - 16:53h

Ótimo. Muito obrigado. Está sendo de grande valia.


Contribuir com comentário