这是一个简单的问题,我有一个结构体。
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是一个数组,因为它的大小未知(当程序实现时,它将从文件中读取值)。这对非指针变量运行良好,但是我似乎无法理解指针。
如何使得我传递结构体时能够修改变量指针?
非常感谢您的任何帮助!
loadFoo
函数有很多问题。 - juanchopanza