我有一個2維數組動態分配在我的C代碼,在我的功能主。我需要將這個2D數組傳遞給一個函數。由於數組的列和行是運行時間變量,我知道一種通過它的方法是:如何將2D動態分配數組傳遞給函數?
- 通過行和列變量以及指向數組中的[0] [0]元素的指針
myfunc(&arr[0][0],rows,cols)
然後在調用的函數,訪問它作爲一個「變平」一維數組,如:
ptr[i*cols+j]
但我並不想這樣做的,因爲這將意味着很多更改代碼,因爲早些時候,傳遞給此函數的2D數組是靜態分配的,其維數已知在編譯時。
那麼,如何將二維數組傳遞給一個函數,並仍然可以將它用作一個二維數組,並具有如下所示的兩個索引?
arr[i][j].
任何幫助將不勝感激。
這就是它 - 儘管代碼在內存中有輕微的錯誤。分配部分..但得到了主意。 – goldenmean 2010-09-21 08:38:37