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

Ver Teoria

Enunciado

Implemente um programa em que obtenha do teclado o tamanho (inteiro) de um vetor, após isso aloque dinamicamente um array de f l o a t s com o tamanho obtido e então leia do teclado a os números digitados pelo usuário e armazene no novo vetor alocado. Exiba os valores contidos no array dinâmico.

Passo 1

Vamos nessa, galera.

Uma das vantagens dos arrays dinamicamente alocados é que podemos, de forma segura, pedir pro usuário escolher o tamanho das arrays. E essa questão quer que a gente use isso!

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

E vamos precisar declarar duas variáveis. A primeira é a variável inteira t a m a n h o que vai receber do usuário o tamanho do array que vamos criar. E a segunda é o ponteiro para floats v e t o r D i n a m i c o , que vai ser o ponteiro que vamos usar para alocar a memória dinamicamente.

Passo 2

Primeiro de tudo, a gente precisa saber qual vai ser o tamanho da nossa array dinâmica. Então vamos perguntar pro usuário e guardar o valor na variável tamanho:

Passo 3

Beleza. Agora já temos um ponteiro e o tamanho, temos tudo que é preciso pra criar uma array dinâmica.

Lembre-se, pra criar uma array dinâmica a gente utiliza o operador n e w para efetuar a alocação de memória, e guardar o endereço da memória alocada em um ponteiro, da seguinte forma: p o n t e i r o = n e w   t i p o [   t a m a n h o   ]

No nosso código o ponteiro é o v e t o r D i n a m i c o , o tipo é f l o a t e o tamanho do array está contido na variável t a m a n h o .   Então, o código fica assim:

E assim temos uma array alocada com sucesso!

A partir de agora o podemos utilizar os colchetes [   ] no ponteiro v e t o r D i n a m i c o para acessar os elementos contidos na memória alocada dinamicamente.

Passo 4

Agora vamos pedir pro usuário preencher o vetor. Com o c o u t vamos imprimir uma mensagem pra informar ao usuário que ele deve preencher o vetor:

Para preencher o v e t o r D i n â m i c o é igual a preencher um array comum, vamos usar um loop que a cada iteração solicita um valor para o usuário:

Na linha 18 nós iniciamos um loop f o r , a quantidade de iterações vai ser igual ao tamanho do array dinâmico. Na linha 21 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 5

O próximo passo é exibir o conteúdo do vetor. Lembre-se que um array dinâmico se comporta igual a um array comum. Então pra exibir os elementos de uma array é só usar um loop:

Na linha 25 imprimimos a mensagem “Exibindo o vetor: ” e saltamos uma linha. Nas linhas 26 a 28 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 6

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