问题描述
- 怎么在一个结构体里调用本身结构体数组
- 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];
解决方案二:
对一个结构体或类的数组进行排序
结构体数组
C#调用c++Dll结构体数组指针的问题
解决方案三:
你这样相当于一个无限循环,如果这样可以,假如你在定义一个这样的结构体变量时,会无限分配内存,所以肯定不可以。
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用错了,刚才没注意
时间: 2024-11-03 12:35:35