我在C代码的主函数中动态分配了一个二维数组。我需要将这个二维数组传递到一个函数中。由于数组的列和行是运行时变量,我知道一种传递方式是:
- 传递行和列变量以及指向数组 [0][0] 元素的指针。
myfunc(&arr[0][0],rows,cols)
然后在被调用的函数中,可以将其视为一个“扁平化”的一维数组来访问:
ptr[i*cols+j]
但我不想那样做,因为那将意味着代码需要很多的更改,因为早些时候,传递给该函数的二维数组是在编译时已知其维度的静态分配。
那么,如何传递一个二维数组给函数,并仍然能够像以下这样使用它作为具有2个索引的二维数组?
arr[i][j].
非常感谢您的帮助。