假设我有这个结构:
typedef struct Foo {
int a;
int b;
int c;
} Foo;
现在,我创建了这个初始化函数,它将为 Foo 分配内存,并将值预设到我的对象中,如下所示:
void initializeFoo(Foo *foo) {
foo = (Foo*)malloc(sizeof(Foo));
foo->a=0;
foo->b=15;
foo->c=0;
}
在 Foo 之上,假设我们创建了一个名为 Display 的 C++ 类,因此我们可以在屏幕上显示 Foo。
class Display {
public:
Display();
private:
Foo* foo;
}
在 Display 构造函数内部,我使用 initializeFoo(foo) 来初始化我的 foo 值,但是我为 foo 设置的预设值不存在。
我认为这可能是内存分配问题。我确保 Display 正确分配了 C++ 的“新”。但是,我整天都在为此挠头。
似乎它不起作用的唯一原因是因为我在 initializeFoo() 中设置了这些值。但是,这对我来说没有意义。
还有其他人对这里可能发生的事情有更好的看法吗?