Указатель и динамический массив
Часть раздела Логика и управление потоком путешествия по C++ на Coddy — урок 56 из 56.
Задание
ЛегкоСоздайте программу, которая демонстрирует динамическое управление памятью путем создания гибкой системы хранения и обработки чисел. Эта задача проверит ваше понимание динамических массивов, выделения памяти, манипулирования массивами и правильной очистки памяти.
Будут предоставлены следующие входные данные:
- Целое число
size, представляющее количество целых чисел для хранения - Затем
sizeцелых чисел, представляющих числа, которые будут храниться в динамическом массиве
Ваша программа должна:
- Считать размер из входных данных
- Динамически выделить массив целых чисел с помощью
new[]указанного размера - Считать целые числа из входных данных и сохранить их в динамически выделенном массиве
- Вычислить сумму всех чисел в массиве
- Найти максимальное значение в массиве
- Вывести результаты в указанном формате
- Правильно освободить память с помощью
delete[]
Используйте следующий точный формат вывода:
Array size: [size]
Sum: [sum_of_all_numbers]
Maximum: [maximum_value]Помните, что динамическое выделение памяти позволяет создавать массивы, размер которых определяется во время выполнения на основе пользовательского ввода. Используйте new int[size] для выделения массива и обращайтесь к элементам, используя нотацию массива array[index]. После завершения использования массива вы должны вызвать delete[] array, чтобы освободить выделенную память и предотвратить утечки памяти. Массив существует в куче и будет сохраняться до тех пор, пока вы явно не освободите его.
Попробуйте сами
#include <iostream>
using namespace std;
int main() {
// Считать размер массива
int size;
cin >> size;
// TODO: Напишите свой код здесь
// 1. Динамически выделите память под массив, используя new[]
// 2. Считайте целые числа и сохраните их в массиве
// 3. Вычислите сумму всех чисел
// 4. Найдите максимальное значение
// 5. Не забудьте освободить память, используя delete[]
// Вывод результатов (замените на фактические переменные)
cout << "Array size: " << size << endl;
cout << "Sum: " << /* переменная суммы */ << endl;
cout << "Maximum: " << /* переменная максимума */ << endl;
return 0;
}Все уроки раздела Логика и управление потоком
1Указатели и память
Что такое указатель?Оператор взятия адресаОператор разыменованияНулевые указателиУказатели и массивыДинамическая память и 'new'Освобождение памяти и 'delete'Итоги: Практика с указателями2Векторы (динамические массивы)
Знакомство с std::vectorСоздание вектораДобавление элементовДоступ к элементамРазмер вектораИтерация с помощью цикла ForRange-based цикл ForУдаление элементовИтоги: операции с векторами5Проект: Инструмент инвентаризации
Настройка проектаДобавление и обновление товаров