-2

我有这个结构:

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

我想知道childrenattr_arr。对于- 它是指向每个单元格来自 type还是来自 typeattr_arr的数组的指针?如何确定单元格是指针还是结构本身?我如何定义它们?我有点迷路了。。pAttr_Elementattr_Element

抱歉 - 这是 pAttr_Element:

 typedef struct {
   char *name;
   char *value;
 }Attr_Element,*pAttr_Element

另一个编辑,试图更清楚

感谢这里的人,我明白这是一个数组,其中每个单元格都是 pAttr_Element 类型的指针。

我现在也明白声明: Attr_Element[10] 是一个数组,其中每个单元格都是我的结构的类型

唯一缺少的是我如何定义一个指向数组的指针,其中每个单元格都来自 Attr_Element 类型?而不是指针

谢谢!

4

2 回答 2

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];
于 2012-07-29T06:58:07.510 回答
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。

于 2012-07-29T07:00:47.043 回答