2011-01-29 2 views
0

, и я делал программу, это не так важно. По-видимому, я не могу отправить параметры функции float. код выглядит примерно такC++ help с ошибкой: невозможно преобразовать параметр 1 из 'float' в 'float [] [2]

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 из„плавать“, чтобы«плавать [] [2]» Что не так? И как я могу это решить?

+0

Хорошо, я вижу свою ошибку. Спасибо за помощь! – Janman

ответ

2

Пару вещей.

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

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

+0

Ох. Сейчас я чувствую себя немой, потому что сам не понял, но спасибо за ответ! – Janman

4

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

foo = myfunction(array); 
+0

Спасибо за помощь – Janman

0

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

+0

Спасибо за помощь! – Janman

2

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

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

Смежные вопросы