我有这个结构:
typedef struct xmlelem{
Char *Element_name;
Char *Element_Text;
pAttr_Element attr_arr[M];
Xml_Element *parent;
Xml_Element *children[N];
Int depth;
Int num_of_children;
Int num_of_attr;
}Xml_Element,*pXml_Element
我想知道children
和attr_arr
。
对于attr_arr
- 它是一个指向数组的指针,其中每个单元格来自类型pAttr_Element
或类型attr_Element
?如何判断单元格是指针还是结构本身?我怎样才能定义它们?我有点失落..
typedef struct {
char *name;
char *value;
}Attr_Element,*pAttr_Element
另一个编辑,试图更清楚
我理解这里的人们,这是一个数组,其中每个单元格都是pAttr_Element类型的指针。
我现在也明白了声明:Attr_Element [10]是一个数组,其中每个单元格都是我的结构类型
唯一缺少的是如何定义一个指向数组的指针,其中每个单元格都来自Attr_Element类型?而不是指针
谢谢!
答案 0 :(得分:0)
这里我假设attr_Element
是结构,pAttr_Element
是typedef,用于指向此结构的指针类型。
typdef atr_Element* pAttr_Element;
在这种情况下,pAttr_Element attr_arr[M];
attr_arr的每个元素都是attr_Element
的指针变量。这意味着attr_arr
是类型attr_Element
如果要定义attr_Element
类型的元素数组,请直接使用该类型
#define SIZE_OF_ELEM 20
struct attr_Element attr_arr[SIZE_OF_ELEM];
答案 1 :(得分:0)
如果pAttr_Element是指向Attr_Element的指针,那么attr_arr是一个指向Attr_Element的M指针的数组。
换句话说,attr_arr [0]的类型为pAttr_Element,而attr_arr [0] - > name为char *,而attr_arr [0] - > name [0]为char。