このウェブサイトの最初のタイマーなので、ここに行きます..
私は C++ の初心者で、現在、「DS Malik の C++ 第 2 版を使用したデータ構造」という本を読んでいます。
この本の中で、Malik は動的な 2 次元配列を作成する 2 つの方法を提供しています。最初のメソッドでは、変数をポインターの配列として宣言します。ここで、各ポインターは整数型です。元。
int *board[4];
..次に、ポインタの配列を「行」として使用しながら、forループを使用して「列」を作成します。
2 番目の方法では、ポインターへのポインターを使用します。
int **board;
board = new int* [10];
等
私の質問はこれです: どちらがより良い方法ですか? ** メソッドの方が視覚化が容易ですが、最初のメソッドはほぼ同じ方法で使用できます。どちらの方法も、動的な 2 次元配列を作成するために使用できます。
編集:上記の投稿では十分に明確ではありませんでした。ここに私が試したいくつかのコードがあります:
int row, col;
cout << "Enter row size:";
cin >> row;
cout << "\ncol:";
cin >> col;
int *p_board[row];
for (int i=0; i < row; i++)
p_board[i] = new int[col];
for (int i=0; i < row; i++)
{
for (int j=0; j < col; j++)
{
p_board[i][j] = j;
cout << p_board[i][j] << " ";
}
cout << endl;
}
cout << endl << endl;
int **p_p_board;
p_p_board = new int* [row];
for (int i=0; i < row; i++)
p_p_board[i] = new int[col];
for (int i=0; i < row; i++)
{
for (int j=0; j < col; j++)
{
p_p_board[i][j] = j;
cout << p_p_board[i][j] << " ";
}
cout << endl;
}