説明的または簡潔な名前を選択しなかった場合は申し訳ありません。多くの質問が似ているように聞こえますが、探しているものを見つけることができませんでした。私がしたいのは、ポインターの2D配列をどこかに保存し、その配列にオブジェクトの変数を割り当てて、それにアクセスできるようにすることです。
これは、より大きなプロジェクトで発生したのと同じコンパイル エラーが発生するコードの例です。
#include <iostream>
using namespace std;
struct X{
float n, * b[8][8];
X(){
n = 1;
b[1][5] = &n;
cout << *(b[1][5]) << endl;
}
void Set(float * c[8][8]){
b = c;
cout << *(b[1][5]) << endl;
}
};
main(){
float m, * a[8][8];
m = 2;
a[1][5] = &m;
X obj;
obj.Set(a);
}
このコードで実現したいことは、X オブジェクトが独自の 2D 配列で始まり、b[1][5] が指す値が "1" として出力されるようにすることです。次に、メイン メソッドの 2D 配列 a がオブジェクトの Set() メソッドに渡され、その配列変数に割り当てられます。b[1][5] が指す値は、「2」として出力されます。
ただし、Set() パラメーター c がどの型であるべきかわかりません。私は得る
error: incompatible types in assignment of ‘float* (*)[8]’ to ‘float* [8][8]’
コンパイルしようとすると。なぜこれをしたいのかというと、フロートではなくオブジェクトへのポインターの配列を使用しようとしていますが、同じエラーです。