簡単な質問ですが、構造体があります
struct Foo{
float *bar;
Foo(){
bar = 0;
}
};
およびロード機能:
bool loadFoo(Foo *data){
float nums[4] = {0,1,2,3};
data->bar = nums;
return true;
};
そして、私は次のように実行します:
void main(){
char data;
Foo myFoo;
loadFoo(&myFoo);
std::cerr << sizeof(myFoo.bar) << "\n";
std::cerr << myFoo.bar[0] << "\n";
std::cerr << myFoo.bar[1] << "\n";
std::cerr << myFoo.bar[2] << "\n";
std::cerr << myFoo.bar[3];
std::cin >> data;
};
sizeof(myFoo->bar) の出力は 4 バイトです。構造体をメソッドに渡すことで data->bar を変更できると考えました。bar は float *bar; であるため、ロード時に「不明なサイズ」であるため、バーが配列であることを指定できないため、配列にすることができます。(実装すると、プログラムはファイルから値を読み込みます) これはポインタ変数以外でも問題なく動作しますが、そのポインタは私には理解できないようです。
構造体を渡すときに変数ポインタを変更できるようにするにはどうすればよいですか?
どんな助けでも大歓迎です!