Ponteiro e Array Dinâmico
Parte da seção Lógica & Fluxo do Journey de C++ da Coddy — lição 56 de 56.
Desafio
FácilCrie um programa que demonstre o gerenciamento dinâmico de memória construindo um sistema flexível de armazenamento e processamento de números. Este desafio testará sua compreensão de arrays dinâmicos, alocação de memória, manipulação de arrays e limpeza adequada de memória.
As seguintes entradas serão fornecidas:
- Um número inteiro
sizerepresentando a quantidade de inteiros a serem armazenados - Em seguida,
sizeinteiros representando os números a serem armazenados no array dinâmico
Seu programa deve:
- Ler o tamanho da entrada
- Alocar dinamicamente um array de inteiros usando
new[]com o tamanho especificado - Ler os inteiros da entrada e armazená-los no array alocado dinamicamente
- Calcular a soma de todos os números no array
- Encontrar o valor máximo no array
- Imprimir os resultados no formato especificado
- Desalocar adequadamente a memória usando
delete[]
Use o seguinte formato de saída exato:
Array size: [size]
Sum: [sum_of_all_numbers]
Maximum: [maximum_value]Lembre-se de que a alocação dinâmica de memória permite criar arrays cujo tamanho é determinado em tempo de execução com base na entrada do usuário. Use new int[size] para alocar o array e acesse os elementos usando a notação de array array[index]. Depois de terminar de usar o array, você deve chamar delete[] array para liberar a memória alocada e evitar vazamentos de memória. O array existe na heap e persistirá até que você o desaloque explicitamente.
Experimente você mesmo
#include <iostream>
using namespace std;
int main() {
// Lê o tamanho do array
int size;
cin >> size;
// TODO: Escreva seu código aqui
// 1. Aloque dinamicamente um array usando new[]
// 2. Leia os inteiros e armazene-os no array
// 3. Calcule a soma de todos os números
// 4. Encontre o valor máximo
// 5. Não se esqueça de desalocar a memória usando delete[]
// Exibe os resultados (substitua pelas variáveis reais)
cout << "Array size: " << size << endl;
cout << "Sum: " << /* variável sum */ << endl;
cout << "Maximum: " << /* variável max */ << endl;
return 0;
}Todas as lições de Lógica & Fluxo
1Ponteiros e Memória
O que é um Ponteiro?Operador de EndereçoOperador de DesreferenciaçãoPonteiros NulosPonteiros e ArraysMemória Dinâmica com 'new'Liberando Memória com 'delete'Recapitulação - Prática com Ponteiros2Vetores (Arrays Dinâmicos)
Introdução ao std::vectorCriando um VetorAdicionando ElementosAcessando ElementosTamanho do VetorIterando com um Loop ForLoop For Baseado em IntervaloRemovendo ElementosRecapitulação - Operações com Vetores3Projeto: Ferramenta de Lista de Tarefas
Visão Geral do ProjetoAdicionando uma Tarefa