Diferença entre alocação de memória estática e dinâmica

Índice:

Diferença entre alocação de memória estática e dinâmica
Diferença entre alocação de memória estática e dinâmica

Vídeo: Diferença entre alocação de memória estática e dinâmica

Vídeo: Diferença entre alocação de memória estática e dinâmica
Vídeo: Alocação de Memória - O que muda nas Estruturas de Dados? Estática ou Dinâmica? 2024, Julho
Anonim

Key Difference – Alocação de Memória Estática vs Dinâmica

Na programação, é necessário armazenar dados computacionais. Esses dados são armazenados na memória. Os locais de memória para armazenar dados na programação de computadores são conhecidos como variáveis. As variáveis têm um tipo de dados específico. Portanto, a memória é alocada para executar os programas. A memória pode ser alocada de duas maneiras. Eles são alocação de memória estática e alocação de memória dinâmica. Na alocação de memória estática, uma vez que a memória é alocada, ela não pode ser alterada. A memória não é reutilizável. Mas na alocação dinâmica de memória, uma vez que a memória é alocada, ela pode ser alterada. A principal diferença entre alocação de memória estática e dinâmica é que na alocação de memória estática, uma vez que a memória é alocada, o tamanho da memória é fixo enquanto na alocação de memória dinâmica, uma vez que a memória é alocada, o tamanho da memória pode ser alterado.

O que é alocação de memória estática?

Na alocação de memória estática, a memória alocada é fixa. Uma vez que a memória é alocada, ela não pode ser alterada. A memória não pode ser aumentada ou diminuída. Por exemplo, na linguagem C se o programador escreve int x, o que significa que a variável pode armazenar um valor inteiro. O número de bytes depende do computador. Também pode haver matrizes. Por exemplo. intx[5]; Este x é um array que pode armazenar uma sequência de dados que são do mesmo tipo. Ele pode armazenar cinco elementos inteiros. Não pode armazenar mais de cinco elementos. Em Java, um array pode ser criado como, int arr=new int[5]; O array ‘arr’ pode armazenar 5 valores inteiros e não pode armazenar mais do que isso.

Diferença entre alocação de memória estática e dinâmica
Diferença entre alocação de memória estática e dinâmica
Diferença entre alocação de memória estática e dinâmica
Diferença entre alocação de memória estática e dinâmica

Figura 01: Métodos de alocação de memória

Na alocação de memória estática, uma vez que as variáveis são alocadas, elas permanecem permanentes. Após a alocação inicial, o programador não pode redimensionar a memória. Se o programador alocou um array que pode armazenar 10 elementos, não é possível armazenar valores maiores que a quantidade especificada. Se o programador inicialmente alocou uma matriz que pode conter 10 elementos, mas precisou apenas de 5 elementos, há um desperdício de memória. Essa memória não é mais necessária, mas também não é possível reutilizar a memória. A alocação de memória estática é fixa, mas a implementação é simples e fácil, além de rápida.

O que é alocação dinâmica de memória?

Às vezes é necessário alterar o tamanho da memória. Assim, a memória pode ser alocada dinamicamente. Dependendo das inserções e exclusões dos elementos de dados, a memória pode aumentar ou diminuir. É conhecido como alocação dinâmica de memória.

Na linguagem C, arquivo de cabeçalho stdlib.h, existem quatro funções para alocação dinâmica de memória. Eles são calloc, malloc, realloc e free. A função malloc() aloca um tamanho necessário de bytes e retorna um ponteiro void, apontando o primeiro byte da memória alocada. A função calloc() aloca um tamanho necessário de bytes e os inicializa com zero. Em seguida, retorna um ponteiro void para a memória. A função free() é usada para realocar a memória alocada. E a função realloc pode modificar a memória alocada anteriormente. Após alocar memória usando calloc ou malloc, o tamanho da memória é fixo, mas pode ser aumentado ou diminuído usando a função realloc. Em Java, coleções podem ser usadas para alocação dinâmica de memória.

A principal vantagem da alocação dinâmica de memória é que ela economiza memória. O programador pode alocar memória ou liberar a memória conforme necessário. A memória pode ser realocada durante a execução e pode liberar a memória quando não for necessária. A alocação de memória dinâmica também é eficiente do que a alocação de memória estática. Uma desvantagem é que a implementação da alocação dinâmica de memória é complexa.

Quais são as semelhanças entre alocação de memória estática e dinâmica?

  • Ambos são mecanismos de alocação de memória.
  • Ambos devem ser implementados manualmente pelo programador.

Qual é a diferença entre alocação de memória estática e dinâmica?

Alocação de memória estática vs dinâmica

Alocação de memória estática é um método de alocação de memória, e uma vez que a memória é alocada, ela é fixa. A alocação dinâmica de memória é um método de alocação de memória e, uma vez alocada, ela pode ser alterada.
Modificação
Na alocação de memória estática, não é possível redimensionar após a alocação inicial. Na alocação dinâmica de memória, a memória pode ser minimizada ou maximizada de acordo.
Implementação
A alocação de memória estática é fácil de implementar. A alocação dinâmica de memória é complexa de implementar.
Velocidade
Na memória estática, a execução da alocação é mais rápida que a alocação de memória dinâmica. Na memória dinâmica, a execução da alocação é mais lenta que a alocação de memória estática.
Utilização da Memória
Na alocação de memória estática, não é possível reutilizar a memória não utilizada. A alocação dinâmica de memória permite reutilizar a memória. O programador pode alocar mais memória quando necessário. Ele pode liberar a memória quando necessário.

Resumo – Alocação de Memória Estática vs Dinâmica

Em programação, alocação de memória estática e alocação de memória dinâmica são dois mecanismos para alocação de memória. A diferença entre alocação de memória estática e dinâmica é que na alocação de memória estática, uma vez que a memória é alocada, o tamanho da memória é fixo enquanto na alocação de memória dinâmica, uma vez que a memória é alocada, o tamanho da memória pode ser alterado. O programador pode decidir se a memória deve ser estática ou dinâmica dependendo da aplicação.

Baixe o PDF de alocação de memória estática vs dinâmica

Você pode baixar a versão em PDF deste artigo e usá-lo para fins offline conforme nota de citação. Faça o download da versão em PDF aqui: Diferença entre alocação de memória estática e dinâmica

Recomendado: