Exercícios Resolvidos de Alocação dinâmica de memória

Ver Teoria

Enunciado

Crie um programa que:

  1. Aloque dinamicamente um array de 5 números inteiros.
  2. Peça para o usuário digitar os 5 números no espaço alocado.
  3. Mostre na tela os 5 números
  4. Libere a memória alocada

Passo 1

Bora lá, pessoal.

Essa questão quer que a gente crie um array dinâmico, preencha e exiba essa array. Você só precisa ter uma coisa em mente quando for trabalhar com arrays dinâmicas: Elas trabalham parecido com as arrays normais!

Então, sem enrolação, vamos começar com o cabeçalho do código:

Passo 2

Primeiro de tudo, a gente precisa criar a nossa array dinâmica.

Pra criar uma array dinâmica, primeiro a gente declara um ponteiro, e em seguida utiliza o operador n e w para efetuar a alocação de memória, da seguinte forma:

t i p o * p o n t e i r o ; p o n t e i r o = n e w   t i p o [   t a m a n h o   ]

A questão pede pra criar um vetor com cinco espaços, então o t a m a n h o será 5. No código nós fazemos assim:

Na linha 07 nós criamos um ponteiro chamado v e t o r D i n a m i c o que será usado para armazenar o endereço de memória do nosso vetor dinâmico. Na linha 08 nós efetuamos a alocação dinâmica de memória.

Show! Fizemos a alocação dinâmica 😎! A partir de agora o ponteiro v e t o r D i n a m i c o pode ser tratado com uma array, e podemos trabalhar com ele utilizando os colchetes da forma como já estamos acostumados.

Passo 3

Com a alocação já feita, vamos preencher o vetor. Vamos mandar uma mensagem pra informar ao usuário que ele deve preencher o vetor:

A variável v e t o r D i n a m i c o é um ponteiro. Porém, depois que a memória é alocada, a gente pode trabalhar com o v e t o r D i n a m i c o de forma muito parecida com as arrays comuns. Da até pra usar os colchetes [   ] para acessar os elementos.

Então, pra preencher uma array dinâmica, a gente pode utilizar um loop que a cada iteração pede pro usuário inserir um dos elementos da array.

Na linha 12 nós iniciamos um loop f o r que fará 5 voltas. A cada iteração, na linha 14, nós exibimos uma mensagem solicitando um valor pro usuário.

Na linha 15 usamos o c i n para guardar o valor inserido na posição i do v e t o r D i n a m i c o . Pra acessar essa posição é só a gente utilizar os colchetes   .

Passo 4

O próximo passo é exibir o conteúdo do vetor. Novamente, vou te lembrar que a gente usa um array dinâmica igual usamos uma array normal. Então pra exibir os elementos de uma array é só usar um loop:

Na linha 19 imprimimos a mensagem “Exibindo o vetor: ” e saltamos uma linha. Na linha 20 a 23 criamos um loop f o r que a cada iteração vai exibir a posição i do v e t o r D i n a m i c o e saltar uma linha.

Passo 5

Sempre que a gente trabalhar com alocação dinâmica de memória, no último passo sempre devemos liberar a memória.

Para liberar a memória vamos usar o operador d e l e t e [   ] para apagar o vetor dinâmico que criamos:

E prontinho! A questão está finalizada.

Resposta