Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Динамічне Виділення Пам'яті для Масиву | Динамічне Виділення Пам'яті
Покажчики та Посилання в C++
Секція 4. Розділ 3
single

single

bookДинамічне Виділення Пам'яті для Масиву

Свайпніть щоб показати меню

Перш ніж розглянути, чому динамічне виділення пам'яті є необхідним, коротко згадаємо характеристики статичних і динамічних масивів:

Статичний масив

  • Фіксований розмір: після оголошення розмір статичного масиву залишається незмінним і не може бути змінений під час виконання програми;
  • Виділення пам'яті під час компіляції: пам'ять для статичного масиву виділяється на етапі компіляції.

Динамічні масиви

  • Масштабованість: динамічні масиви дозволяють змінювати розмір під час виконання програми, забезпечуючи гнучкість для адаптації до змінних вимог;
  • Виділення пам'яті під час виконання: пам'ять для динамічних масивів виділяється під час виконання програми.

Обмеження статичного підходу

Розглянемо програму, яка пропонує користувачу ввести оцінки продуктивності за кожен день поточного місяця.

На жаль, цього не можна досягти за допомогою статичного масиву:

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
Примітка

Це призведе до помилки компіляції, оскільки day_passed не є константним виразом — він залежить від значення поточного дня місяця під час виконання програми.

Тому замість статичного масиву необхідно використовувати динамічно виділений масив.

Завдання

Swipe to start coding

Уявіть, що ви працюєте метеорологом і вам потрібно аналізувати показники температури протягом дня.

Ви будете працювати з вказівниками та функціями, які оперують динамічно виділеними масивами даних.

  1. Ініціалізуйте змінні sum значенням 0, minTemp — першим елементом масиву, а maxTemp — також першим елементом масиву.
  2. Використовуйте цикл temps з індексом for від 0 до i для проходження по масиву hours.
  3. Для кожного елемента temps[i] додайте його значення до sum.
  4. Якщо temps[i] менше за minTemp, присвойте temps[i] змінній minTemp.
  5. Якщо temps[i] більше за maxTemp, присвойте temps[i] змінній maxTemp.
  6. Обчисліть середню температуру, поділивши sum на hours, і збережіть результат у змінній average.
  7. Виведіть значення minTemp, maxTemp та average у консоль.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 3
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

some-alt