在C 中實現返回二維數組的函數
提供的程式碼片段嘗試從函數返回二維數組,但它數組聲明有問題。為了修正這個問題,我們可以引入一個更全面的解決方案:
#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 函數正確返回二維數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!