怎么在一个结构体里调用本身结构体数组

typedef struct XML_DATA
{
struct XML_DATA DATA[10];
char MENU[10][256];
ezxml_t xml;
char *txt;
char *strAttr;
char *file;

};
XML_DATA m_data[10];

这样使用为什么会报错,应该怎么修改?
谢谢大家帮忙看看咯。

定义变量要使用:struct XML_DATA m_data[10];
要不就要改结构体的定义,增加类型,如:
typedef struct XML_DATA
{ 。。。。。。
}XML_DATA_S;
然后可以这样定义:XML_DATA_S m_data[10];

你这样相当于一个无限循环,如果这样可以,假如你在定义一个这样的结构体变量时,会无限分配内存,所以肯定不可以。
typedef struct XML_DATA
{
struct XML_DATA **DATA;
char MENU[10][256];
ezxml_t xml;
char *txt;
char *strAttr;
char *file;
};
XML_DATA m_data[10];
只能用指针,因为指针大小固定,然后真正用到时给指针分配内存。

struct XML_DATA
{
struct XML_DATA **DATA;
char MENU[10][256];
ezxml_t xml;
char *txt;
char *strAttr;
char *file;
}XML_DATA_T;
XML_DATA_T m_data[10];
你typededf用错了,刚才没注意