我有一个看起来像这样的功能
float Determinant(unsigned int n, float a[][n])
我希望传递一个双指针
float **a
有没有办法将float **a
投射到float a[][n]
?
答案 0 :(得分:4)
不,没有办法做到这一点。当声明为函数参数时,数组a
衰减为指向第一个元素的指针,数组指针为float (*)[n]
。这个数组指针类型和数组float a[][n]
都与类型float**
无关。
将float**
传递给此函数的需要可能源于有缺陷的程序设计。也许你错误地为2D数组动态分配了基于指针的查找表?如果是,请参阅Correctly allocating multi-dimensional arrays。