傳回 C 中的二維陣列
從 C 的函數傳回 2D 陣列可能是一項棘手的任務。如所提供的程式碼所示,一種方法嘗試使用下面所示的程式碼傳回二維數組,但這種方法不合適。
int **MakeGridOfCounts() { int cGrid[6][6] = {{0, }, {0, }, {0, }, {0, }, {0, }, {0, }}; return cGrid; }
相反,一種可行的方法是建立並傳回指向使用動態記憶體分配的二維數組。讓我們透過改進的程式碼範例來探索如何完成此操作:
#include <cstdio> int** create2DArray(unsigned height, unsigned width) { .... }
建立二維陣列( create2DArray() ):
int** array2D = new int*[height]; for (int h = 0; h < height; h++) { array2D[h] = new int[width]; . . . }
傳回陣列(create2DArray() ):
清理記憶體(main()):
for (int h = 0; h < height; h++) { delete [] array2D[h]; } delete [] array2D;
以上是如何從 C 函數正確返回二維數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!