dereferencing pointer to incomplete type

今天写的程序出现了一下 提示的错误:

1、dereferencing pointer to incomplete type         指针的类型不完全

2、assignment from incompatible pointer type    指针类型不匹配

找了很久 没有找到错误。


引用:

dereferencing pointer to incomplete type是什么错误?

你的指针,有一个类型,这个类型是不完全的。也就是说,你只给出了这个类型的声明,没有给出其定义。你这里的类型多半是结构,联合之类的东西。


这个错误其实是因为某结构体或联合的字段名所指的变量定义的头文件没有引入到当前C代码中而造成的错误,只要找到出错对应的变量的结构体或联合的定义的头文件,并把这些头文件包含进来即可解决此问题;


但是我的头文件是包含了的, 所以纠结了很久。。最后的最后 发现了 错误,贴上自己的代码:

typedef struct _UdpList
{
	struct UdpList *next;
	struct UdpList *pre;
	int  num;
	int  content_size;
    char *content;
}UdpList;


typedef struct _UDPQQFileData
{
    QQFileData *qqData;
	UdpList    *udpHead;
	UdpList    *udpTail;
    UdpList    *tmp;
    UdpList    *cur;
	uint32_t list_size;
    uint32_t state;
    
} UDPQQFileData;

然后报错的行是这样的: udpHead->pre->num 说 dereferencing pointer to incomplete type    

我想细心的 你们应该已经发现 第二行和第三行

struct UdpList *next;
此时的Udplist并没有定义, 所以会出现这个问题。纠结了很久, 
 
 
总之呢,这个问题就是 写代码的时候一定要细心啊!!!教训!

你可能感兴趣的:(c)