我有这些结构:Ç - 字节数组结构(DNS查询)
typedef struct dnsQuery {
char header[12];
struct TdnsQuerySection *querySection;
} TdnsQuery;
typedef struct dnsQuerySection {
unsigned char *name;
struct TdnsQueryQuestion *question;
} TdnsQuerySection;
typedef struct dnsQueryQuestion {
unsigned short qtype;
unsigned short qclass;
} TdnsQueryQuestion;
,我有从recvfrom
在字节数组DNS查询。 我想从字节数组结构是这样的:
TdnsQuery* dnsQuery = (TdnsQuery*)buf;
printf("%u", dnsQuery->querySection->question.qtype);
为什么我得到错误提领指向不完全类型?我做对了吗?或者我该如何从该数组中获取dns查询结构?我需要该dns查询问题和类型。
通过'recvfrom'收到的dns查询不包含指针值,所以你不能直接将它映射到你在问题中显示的结构。要么你需要修改你的结构体定义不要包含指针,要么你需要解析接收到的数据,并按字段填充结构体。 –