セクション 4. 章 2
single
動的割り当て
メニューを表示するにはスワイプしてください
動的メモリ割り当ては、new および delete 演算子を使用することを指します。これらの演算子により、変数や配列のメモリを実行時に割り当てることができ、静的メモリ割り当てよりも柔軟性が向上します。
-
new: 実行時にオブジェクトまたはオブジェクトの配列のメモリを動的に割り当てるための演算子; -
delete:new演算子で以前に割り当てられたメモリを解放するための演算子。
注意
動的に割り当てられたメモリを指すポインタは通常スタック上に格納されますが、そのポインタが指すメモリ自体はヒープ上に割り当てられます。
整数変数を動的に作成するには、ポインタと new キーワードを組み合わせて使用します。
int *dynamicInteger = new int;
動的に割り当てられたメモリを解放するには、delete 演算子を使用します:
delete dynamicInteger;
自分のルールとして、新しいメモリを割り当てるときは、必ず後で delete を使って解放すること。
動的配列の割り当て
配列のメモリを動的に割り当てる場合は new[] 演算子を使用し、動的に割り当てられた配列のメモリを解放する場合は delete[] 演算子を使用します。
注意
動的に割り当てられたメモリを削除しない場合、プログラムが使用しなくなったメモリを保持し続けるメモリリークが発生する可能性。
タスク
スワイプしてコーディングを開始
あなたは教師として、学生グループの平均点を計算する必要があると想像してください。
また、ポインタや動的に確保された配列を操作する関数も扱います。
- 学生の成績を保存するために、動的に確保された配列
gradesを作成します。 fillRandomGrades関数を使用して、配列に60から100のランダムな成績を格納します。calculateAverage関数を完成させて、以下を実行できるようにします。- 変数
sumを0で初期化します。 forループを使って配列を走査します。- 各成績を
sumに加算します。 - 合計の
sumを学生数で割って平均点を返します。
- 変数
- プログラムの最後で
delete[]を使って確保したメモリを解放し、メモリリークを防ぐことを忘れないでください。
解答
すべて明確でしたか?
フィードバックありがとうございます!
セクション 4. 章 2
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください