首頁 >後端開發 >C++ >如何從 C 函數安全地傳回和管理 2D 陣列?

如何從 C 函數安全地傳回和管理 2D 陣列?

Linda Hamilton
Linda Hamilton原創
2024-12-26 17:59:10696瀏覽

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