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];
这样使用为什么会报错,应该怎么修改? 谢谢大家帮忙看看咯。
收起
当前问题酬金
¥ 0 (可追加 ¥500)
支付方式
扫码支付
支付金额 15 元
提供问题酬金的用户不参与问题酬金结算和分配
支付即为同意 《付费问题酬金结算规则》
定义变量要使用: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用错了,刚才没注意
报告相同问题?