的結構成員陣列我有這兩個結構C結構
struct List {
unsigned length;
char * value;
};
struct bal {
List name;
List ** attributes;
};
所以結構列表將處理字符的字符串,即時通訊將焦炭(用函數使用malloc)創建我的字符串。
我的結構BAL兩個成員,一個是它是一個結構列表和其他成員是結構清單Array的名字,這樣我就可以一個struct BAL添加屬性。
我沒有問題,直到我嘗試訪問我的一個結構BAL的屬性列表。如果我的結構BAL爲3個屬性,我的屬性列表的表示應該是這樣的:
attributes[0];
attributes[1];
attributes[2];
每個位置是一個結構列表。所以,如果我想讓說printf的一個屬性,我的想法是,這是我一直做這樣的事情:
bal firstBal;
讓我們說我在程序中添加3個屬性。
然後將其打印出來,我做的事:
printf("The first attributes is : %s ", firstBal->attributes[0]->value);
但是,當我這樣做,我得到的錯誤:
error: request for member value in something not a structure or union
但我不知道爲什麼?我的結構bal有一個成員是一個結構列表數組,所以當我添加一個結構列表在該數組中,我應該能夠訪問我的結構列表的成員價值。
我的結構列表的成員值是一個字符串,所以......
非常感謝您!
我認爲你需要用malloc()來發布零件。 – 2015-04-06 00:53:47
你沒有告訴你分配你的結構。沒有這些信息,沒有辦法回答一些問題。另外,你聲明'bal firstBal'指示'firstBal'爲'struct',但是你可以將它作爲指針引用:'firstBal - > ...'。您應該將其引用爲:'firstBal.attributes [0] - > value',因爲它不是指針。 ' - >'運算符用於* pointer *的結構(*例如*,如果您有聲明'bal * firstBal;'並且您動態分配'firstBal')。 – lurker 2015-04-06 00:54:33