ポインタと動的配列
CoddyのC++ジャーニー「論理と制御フロー」セクションの一部 — レッスン 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;
}