C ++ помогает с ошибкой: не может преобразовать параметр 1 из 'float' в 'float [] [2] - PullRequest
0 голосов
/ 29 января 2011

и я делал программу, это не так важно. По-видимому, я не могу отправить параметры в функцию с плавающей точкой. код выглядит примерно так

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 ]

4 голосов
/ 29 января 2011

Просто передайте массив, без индексов:

foo = myfunction(array);
2 голосов
/ 02 июня 2011

Вы определили переменную: float array[1][2]; Затем вы вызываете функцию следующим образом: foo = myfunction(array); В качестве параметра только вы должны установить имя переменной. Вы не должны делать это: foo = myfunction(array[1][2]);

Когда вы создаете функцию, делайте это следующим образом: введите myfunction(float Array[][w]), указав тип функции (void, float ...) и "w" - постоянное целое число.

2 голосов
/ 29 января 2011

Пара вещей.

Во-первых, прототип функции float myfunction(float array[1][2]) сбивает с толку ( вас ), поскольку это на самом деле означает: float myfunction(float array[][2])или float myfunction(float (*array)[2]).Функция принимает указатель на (один или несколько) массив (ов) из двух чисел с плавающей запятой.

Во-вторых, вы получаете ошибку, потому что функция принимает указатель на массив, в то время как вы пытаетесь передать его single float - элемент [1] [2] двумерного массива float array[1][2].Возможно, вы хотели передать весь массив функции?

0 голосов
/ 29 января 2011

Вы передаете определенную ячейку, а не массив

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...