Alocação de memória, em ciência da computação, consiste no processo de solicitar/utilizar memória durante o processo de execução de um programa de computador. A alocação de memória no computador pode ser dividida em dois grupos principais:

  • Alocação Estática: os dados tem um tamanho fixo e estão organizados sequencialmente na memória do computador. Um exemplo típico de alocação estática são as variáveis globais e arrays. A alocação estática de memória tem como principal ponto positivo a simplicidade com que pode ser realizada pelos programadores, mantendo o algoritmo simples e de fácil organização das variáveis utilizadas. No entanto, como principal ponto negativo, a alocação estática ocupa uma porção fixa da memória, em casos em que essas variáveis não sejam utilizadas após um certo ponto, a alocação estática consome desnecessariamente esta porção reservada da memória, podendo levar o programa a fica muito pesado desnecessariamente. Apesar disso, é importante ressaltar, que na maioria das linguagens de programação, as variáveis criadas com alocação estática são liberadas automaticamente após o fim de uma determinada função.

Em C, um exemplo de alocação estática é simplesmente a declaração de uma variável:

int variável;

  • Alocação Dinâmica: os dados não precisam ter um tamanho fixo, pois é possível definir para cada dado quanto de memória que deseja-se usar. Sendo assim aloca-se espaços de memória (blocos) que não precisam estar necessariamente organizados de maneira sequencial, podendo estar distribuídos de forma dispersa (não ordenada) na memória do computador. Na alocação dinâmica, é possível alocar/desalocar blocos de memória, de acordo com a necessidade, reservando ou liberando blocos de memória durante a execução de um programa. Para poder “achar” os blocos que estão dispersos ou espalhados na memória usa-se as variáveis do tipo Ponteiro (indicadores de endereços de memória). É importante ressaltar que, na maioria das linguagens de programação, as variáveis criadas com alocação dinâmica não são liberadas automaticamente após o fim de funções, sendo necessário liberá-las manualmente, e, por questões de segurança, é importante atribuir o "NULL" ao ponteiro criado.

Em C, um exemplo de alocação dinâmica é o seguinte:

int *ponteiro;

ponteiro = (int *) malloc(sizeof(int));

Dessa forma, o ponteiro aponta para o endereço de memória contendo um espaço do tipo e tamanho da variável int.

Em C, um exemplo para limpar a memória alocada é o seguinte:

free(ponteiro);

ponteiro = NULL;

Ícone de esboço Este artigo sobre software é um esboço. Você pode ajudar a Wikipédia expandindo-o.

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.