首页 >后端开发 >C++ >如何从 C 函数安全地返回和管理 2D 数组?

如何从 C 函数安全地返回和管理 2D 数组?

Linda Hamilton
Linda Hamilton原创
2024-12-26 17:59:10761浏览

How to Safely Return and Manage a 2D Array from a C   Function?

从 C 中的函数返回 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++)
        {
            // Initialize array elements as needed
        }
    }

    return array2D;
}

此函数将所需二维数组的高度和宽度作为无符号整数,并为其动态分配内存。先分配外层数组,然后在循环内分配内层数组。

使用后记得释放内存,防止内存泄漏。这可以通过循环遍历元素并删除内部和外部数组来完成。

用法示例:

int height = 15;
int width = 10;
int** my2DArray = create2DArray(height, width);
// Use the array as needed
// ...
for (int h = 0; h < height; h++)
{
    delete [] my2DArray[h];
}
delete [] my2DArray;
my2DArray = 0; // Set pointer to null to prevent dangling pointer

以上是如何从 C 函数安全地返回和管理 2D 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn