我有这样的结构:
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
类型?如何判断单元格是指针还是结构本身?我该如何定义它们呢?我有点迷失了..
抱歉 - 这是 pAttr_Element:
typedef struct {
char *name;
char *value;
}Attr_Element,*pAttr_Element
再次编辑,试图更清晰
感谢这里的人,我明白这是一个数组,其中每个单元格都是 pAttr_Element 类型的指针。
我现在也明白声明:Attr_Element[10] 是一个数组,其中每个单元格都是我的结构的类型
唯一缺少的是我如何定义一个指向数组的指针,其中每个单元格都来自 Attr_Element 类型?而不是指针
谢谢!
最佳答案
这里我假设 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];
关于c - 如何在C中定义结构体数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11707289/