從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中文網其他相關文章!