Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 動的割り当て | 動的メモリ割り当て
C++ポインタと参照
セクション 4.  2
single

single

book動的割り当て

メニューを表示するにはスワイプしてください

動的メモリ割り当ては、new および delete 演算子を使用することを指します。これらの演算子により、変数や配列のメモリを実行時に割り当てることができ、静的メモリ割り当てよりも柔軟性が向上します。

  • new: 実行時にオブジェクトまたはオブジェクトの配列のメモリを動的に割り当てるための演算子;

  • delete: new 演算子で以前に割り当てられたメモリを解放するための演算子。

Note
注意

動的に割り当てられたメモリを指すポインタは通常スタック上に格納されますが、そのポインタが指すメモリ自体はヒープ上に割り当てられます。

整数変数を動的に作成するには、ポインタと new キーワードを組み合わせて使用します。

int *dynamicInteger = new int;

動的に割り当てられたメモリを解放するには、delete 演算子を使用します:

delete dynamicInteger;

自分のルールとして、新しいメモリを割り当てるときは、必ず後で delete を使って解放すること。

動的配列の割り当て

配列のメモリを動的に割り当てる場合は new[] 演算子を使用し、動的に割り当てられた配列のメモリを解放する場合は delete[] 演算子を使用します。

Note
注意

動的に割り当てられたメモリを削除しない場合、プログラムが使用しなくなったメモリを保持し続けるメモリリークが発生する可能性。

タスク

スワイプしてコーディングを開始

あなたは教師として、学生グループの平均点を計算する必要があると想像してください。

また、ポインタや動的に確保された配列を操作する関数も扱います。

  1. 学生の成績を保存するために、動的に確保された配列 grades を作成します。
  2. fillRandomGrades 関数を使用して、配列に60から100のランダムな成績を格納します。
  3. calculateAverage 関数を完成させて、以下を実行できるようにします。
    • 変数 sum を0で初期化します。
    • for ループを使って配列を走査します。
    • 各成績を sum に加算します。
    • 合計の sum を学生数で割って平均点を返します。
  4. プログラムの最後で delete[] を使って確保したメモリを解放し、メモリリークを防ぐことを忘れないでください。

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  2
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt