的结构成员阵列我有这两个结构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