У меня есть некоторые проблемы с использованием указателей на C++. Я реализовал три метода с различными размерами массивов, но те же вычисления. Поэтому я решил извлечь вычисления и поместить их в новый метод, который ожидает массив. Но это не работает, и я не знаю, как изменить мою программу.Указатель для массивов в C++
void method1() {
float a[3][3];
calculate(a, 3);
}
void method2() {
float a[4][4];
calculate(a, 4);
}
void method3() {
float a[5][5];
calculate(a, 5);
}
void calculate(float *param[], int n) {
// Code
}
Я знаю, что могу использовать глобальные переменные или векторы и т. Д., Но мне нужна логика в этой структуре.
Вот ошибка компилятора:
Test.cpp: In function 'void method1()':
Test.cpp:7:16: error: cannot convert 'float (*)[3]' to 'float**' for argument '1' to 'void calculate(float**, int)'
Test.cpp: In function 'void method2()':
Test.cpp:12:16: error: cannot convert 'float (*)[4]' to 'float**' for argument '1' to 'void calculate(float**, int)'
Test.cpp: In function 'void method3()':
Test.cpp:17:16: error: cannot convert 'float (*)[5]' to 'float**' for argument '1' to 'void calculate(float**, int)'
Заранее спасибо!
[Массивы НЕ УКАЗАТЕЛИ ] (http://stackoverflow.com/questions/1641957/is-array-name-a-pointer-in-c) –