-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。-の場合、すべてのセルがタイプまたはタイプattr_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 に答える