C で 2D 配列を返す関数の実装
提供されたコード スニペットは関数から 2D 配列を返そうとしますが、配列の宣言に問題があります。これを修正するために、より包括的なソリューションを導入できます。
#include <iostream> using namespace std; // Returns a pointer to a newly created 2D array with dimensions [height x width] int** MakeGridOfCounts(int height, int width) { int** grid = new int*[height]; // Dynamically allocate an array of pointers to rows for (int i = 0; i < height; i++) { // Allocate each row and set its columns to 0 grid[i] = new int[width]; fill_n(grid[i], width, 0); } return grid; } int main() { int** grid = MakeGridOfCounts(6, 6); // Get a 6x6 grid (initialized with 0s) // Do something with the grid... // Release allocated memory for (int i = 0; i < 6; i++) { delete[] grid[i]; } delete[] grid; return 0; }
このソリューションでは、メモリ管理技術を使用して 2D 配列を動的に割り当て、適切なメモリ処理を保証します。 fill_n 関数は、配列の各要素を 0 に初期化するために使用されます。メモリの割り当てと割り当て解除は同じスコープ内 (この場合は main 関数内) で実行する必要があることに注意してください。
以上がC 関数から 2D 配列を正しく返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。