C ++帮助错误:无法将参数1从'float'转换为'float [] [2]

时间:2011-01-29 19:32:00

标签: c++ arrays function

我正在做一个程序,这不是那么重要。显然,我无法将参数发送到浮点函数。 代码看起来像这样

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]” 怎么了?我该如何解决?

4 个答案:

答案 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)

您正在传递某个单元格,而不是数组