Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Alocação Dinâmica de Arrays | Alocação Dinâmica de Memória
Ponteiros e Referências em C++
Seção 4. Capítulo 3
single

single

bookAlocação Dinâmica de Arrays

Deslize para mostrar o menu

Antes de explorarmos por que a alocação dinâmica é necessária, vamos recapitular rapidamente as características dos arrays estáticos e dinâmicos:

Array Estático

  • Tamanho Fixo: uma vez declarado, o tamanho de um array estático é fixo e não pode ser alterado durante a execução;
  • Alocação de Memória em Tempo de Compilação: a memória necessária para um array estático é alocada em tempo de compilação.

Arrays Dinâmicos

  • Redimensionável: arrays dinâmicos permitem redimensionamento em tempo de execução, proporcionando flexibilidade para se adaptar a requisitos variáveis do programa;
  • Alocação de Memória em Tempo de Execução: a memória para arrays dinâmicos é alocada durante a execução do programa.

As Limitações de uma Abordagem Estática

Considere o programa que solicita ao usuário a entrada das pontuações de desempenho para cada dia que passou no mês atual.

Infelizmente, não é possível alcançar isso usando um array estático:

main.cpp

main.cpp

copy
12345678910
#include <iostream> #include <ctime> int main() { std::time_t currentTime = std::time(nullptr); int day_passed = std::localtime(&currentTime)->tm_mday; int arr[day_passed]; std::cout << day_passed << std::endl; }
Note
Nota

Isso gerará um erro de compilação porque day_passed não é uma expressão constante; ela depende do valor em tempo de execução do dia atual do mês.

Portanto, em vez de um array estático, é necessário utilizar um array alocado dinamicamente.

Tarefa

Deslize para começar a programar

Imagine que você está trabalhando como meteorologista e precisa analisar leituras de temperatura ao longo do dia.

Você irá trabalhar com ponteiros e funções que manipulam arrays de dados alocados dinamicamente.

  1. Inicialize as variáveis sum com 0, minTemp com o primeiro elemento do array e maxTemp com o primeiro elemento do array.
  2. Percorra o array temps utilizando um laço for com o índice i de 0 até hours.
  3. Para cada elemento temps[i], adicione seu valor a sum.
  4. Se temps[i] for menor que minTemp, atribua temps[i] a minTemp.
  5. Se temps[i] for maior que maxTemp, atribua temps[i] a maxTemp.
  6. Calcule a temperatura média dividindo sum por hours e armazene em uma variável average.
  7. Imprima os valores de minTemp, maxTemp e average no console.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 3
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

some-alt