u012168958
亲爱滴蛋蛋
2015-07-21 08:48
采纳率: 27.3%
浏览 3.3k

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

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];

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 91program
    91program 2015-07-21 09:11
    已采纳

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

    点赞 评论
  • beibei2008qq
    beibei2008qq 2015-07-21 08:57

    你这样相当于一个无限循环,如果这样可以,假如你在定义一个这样的结构体变量时,会无限分配内存,所以肯定不可以。
    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];
    只能用指针,因为指针大小固定,然后真正用到时给指针分配内存。

    点赞 评论
  • beibei2008qq
    beibei2008qq 2015-07-21 09:17

    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用错了,刚才没注意

    点赞 评论

相关推荐