Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

linkwoodlok

Alocação de memória?

Recommended Posts

Alguém pode me explicar em termos simples oque é alocação de memória?? é pra que eu possa entender mais ou menos as funções de algumas bibliotecas em C..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em termos extremamente simples, alocação de memória é o ato de criar variáveis:

int numeros[4]; // alocação de 4 inteiros
A alocação acima é estática, sempre que o bloco de código acima for executado será criada uma array de 4 inteiros, então eu posso usar os valores como quiser (dentro do limite da array, claro).

numeros[0] = 2014;
numeros[1] = 32;
numeros[2] = 25;
numeros[3] = 1995;
Também existe a alocação dinâmica de memória:

int quantidade = 0;
int *numeros;

printf("Quantos inteiros deseja criar?\n");
scanf("%d",&quantidade); // digitei "2"

numeros = (int *)malloc(sizeof(int)*quantidade));

// agora eu posso usar a array "numeros"
numeros[0] = 2014;
numeros[1] = 32;

free(numeros); // desaloca a memória
No código acima EU fiz a alocação da variável "numeros", então é minha obrigação desalocar a mesma.

 

O código abaixo faz um programa para de funcionar:

int *numeros;

numeros[0] = 15; // ERRO: numeros não foi alocada
numeros[1] = 32; // ERRO: numeros não foi alocada
Claro que esse assunto é gigantescamente mais complexo, mas em termos simples como você pediu é isso.

 

Se você pretende mesmo estudar sobre alocação e gerenciamento de memória não fique só com o eu disse aqui, tem muitos mais pra estudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.