比方說,我有這樣的結構:設定值
typedef struct Foo {
int a;
int b;
int c;
} 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;
}
顯示器內部構造的我用initializeFoo(富)來初始化自己的價值觀foo的,但是我已經爲富設定的預設值是不存在的。
我認爲這可能是一個內存分配問題。我確信Display正確地分配了C++的'新'。不過,我一整天都在撓頭。
它似乎是它不工作的唯一原因是因爲我在initializeFoo()中設置了這些值。但是,這對我來說沒有意義。
其他人對這裏會發生什麼有更好的意見?
你使用'C'還是'C++'?因爲你在這裏看起來像一個非常不健康的混合物。 – 2013-03-07 08:28:38
@Matthieu我只爲我的驅動程序使用C++。其他代碼必須嚴格使用C++ – 2013-03-07 11:11:03