应该是一个简单的问题,我有一个结构
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; 我可以将它设为一个数组,因为我无法指定 bar 是一个数组,因为它在加载时是一个“未知大小”。(实施时,程序将从文件中读取值)这适用于非指针变量,但它的指针我似乎无法理解。
我如何做到这一点,以便在传递结构时可以修改变量指针?
任何帮助将不胜感激!