我正在做一个程序,这不是那么重要。显然,我无法将参数发送到浮点函数。 代码看起来像这样
float myfunction(float array[1][2])
{
// ...
return 0;
}
int main()
{
float array[1][2];
int foo = 0;
// assigning values to the array
foo = myfunction(array[1][2]);
return 0;
}
当我尝试编译时,我收到错误“无法将参数1从'float'转换为'float [] [2]” 怎么了?我该如何解决?
答案 0 :(得分:4)
只传递数组,没有索引:
foo = myfunction(array);
答案 1 :(得分:2)
有几件事。
首先,函数原型float myfunction(float array[1][2])
令人困惑(你),因为实际意味着:float myfunction(float array[][2])
或{{1} }。该函数接受指向两个浮点数(一个或多个)数组的指针。
其次,你得到的错误是因为函数接受一个指向数组的指针,而你正试着传递它单个 float - 元素[1] [2]的二维数组float myfunction(float (*array)[2])
。也许你打算将整个数组传递给函数?
答案 2 :(得分:2)
您已定义变量:float array[1][2];
然后,您以这种方式调用该函数:foo = myfunction(array);
作为参数,只需设置变量名称即可。你不应该这样做:foo = myfunction(array[1][2]);
当你创建一个函数时,以这种方式执行:键入myfunction(float Array[][w])
,键入函数的类型(void,float ...)和“w”是一个常量整数。
答案 3 :(得分:0)
您正在传递某个单元格,而不是数组