将指针指针转换为2D数组

时间:2017-05-09 12:54:56

标签: c pointers

我有一个看起来像这样的功能

float Determinant(unsigned int n, float a[][n])

我希望传递一个双指针

float **a

有没有办法将float **a投射到float a[][n]

1 个答案:

答案 0 :(得分:4)

不,没有办法做到这一点。当声明为函数参数时,数组a衰减为指向第一个元素的指针,数组指针为float (*)[n]。这个数组指针类型和数组float a[][n]都与类型float**无关。

float**传递给此函数的需要可能源于有缺陷的程序设计。也许你错误地为2D数组动态分配了基于指针的查找表?如果是,请参阅Correctly allocating multi-dimensional arrays