在 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中文网其他相关文章!