C では、配列や関数を操作するときに、多くの場合、多次元配列を返すことが必要になります。この記事では、C の関数から 2D 配列を返す方法に関する具体的な問題について説明します。
提供されたコード試行 MakeGridOfCounts() は、2D 配列を返すことを目的としていますが、配列の減衰により不十分です。代わりに、2D 配列を適切に返すには、配列へのポインタを返す必要があります。
静的配列の制限を克服するために、C では多次元配列を作成する方法が提供されています。ダイナミックに。次のコードは、ヒープ上に新しい 2D 配列を作成する方法を示しています。
int** create2DArray(unsigned height, unsigned width) { int** array2D = 0; array2D = new int*[height]; for (int h = 0; h < height; h++) { array2D[h] = new int[width]; for (int w = 0; w < width; w++) { // fill in some initial values array2D[h][w] = w + width * h; } } return array2D; }
この関数は、高さと幅の 2 つのパラメーターを受け取り、サイズ [高さ x 幅] の新しく作成された 2D 配列へのポインターを返します。 ].
関数から動的に作成された 2D 配列を返すには、配列へのポインタを返します。が返されます。このポインタは配列の最初の要素を指し、配列全体へのアクセスを提供します。
int** MakeGridOfCounts() { int** cGrid = create2DArray(6, 6); return cGrid; }
動的に割り当てられた配列を操作する場合、忘れずにメモリをクリーンアップすることが重要です。使用後の記憶。そうしないと、メモリ リークが発生する可能性があります。
for (int h = 0; h < height; h++) { delete[] my2DArray[h]; } delete[] my2DArray; my2DArray = 0;
上記で概説した手法に従うことで、 C の関数から効果的に 2D 配列を返すことができます。静的配列の制限を回避し、使用後に割り当てられたメモリをクリーンアップするために、必ず配列を動的に作成してください。
以上がC 関数から 2D 配列を返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。