セクション 4. 章 4
single
ポインタへのポインタの動的割り当て
メニューを表示するにはスワイプしてください
ポインタへのポインタ(ダブルポインタ、** で表記)。
これは、別のポインタのメモリアドレスを保持するポインタ。簡単に言えば、その値が他のポインタのアドレスである変数。最初は複雑に感じるかもしれませんが、高度な動的メモリ割り当てを扱うための強力な仕組みを提供します。
構文
main.cpp
12345678910111213#include <iostream> int main() { int x = 10; int *ptr1 = &x; int **ptr2 = &ptr1; // Accessing values using double pointer std::cout << "Address stored in ptr2 (address of ptr1): " << ptr2 << std::endl; std::cout << "Address stored in ptr1 (address of x): " << *ptr2 << std::endl; std::cout << "Value of x: " << **ptr2 << std::endl; }
- ptr1: 整数へのポインタ(
int*) - ptr2: 整数へのダブルポインタ(
int**)
二次元配列の動的確保
二次元配列を動的に(実行時に)作成する場合、行のためにポインタへのポインタを使用。
その後、各行を動的配列で初期化(前章と同様)。
タスク
スワイプしてコーディングを開始
スプレッドシートアプリケーションで、数値の表を動的に作成する必要がある場面を想像してください。
この課題では、動的な二次元配列を扱い、メモリの割り当てと解放の両方を練習します。
- 関数
createAndPrint2DArray内で、指定された行数と列数を持つ整数型の2次元配列を動的に割り当てます。 - 配列の各要素には
row * columns + columnという計算式で値を代入し、各要素がその位置に依存した一意の値となるようにします。 - 配列をコンソールに表形式で出力します。
- 各行とポインタ配列自体に対して
delete[]を使用し、動的に割り当てたメモリを適切に解放します。
解答
すべて明確でしたか?
フィードバックありがとうございます!
セクション 4. 章 4
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください