C++でポインタを使用するのにいくつか問題があります。サイズの異なる配列で3つのメソッドを実装しましたが、計算は同じです。そこで、計算を抽出して、配列を期待する新しいメソッドに配置することにしました。しかし、それは機能せず、プログラムを変更する方法がわかりません。
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)'
前もって感謝します!