【发布时间】:2011-11-29 14:49:33
【问题描述】:
我有一个包含结构的无符号字符指针。现在我想做以下事情
unsigned char buffer[24];
//code to fill the buffer with the relevant information.
int len = ntohs((record_t*)buffer->len);
其中 record_t 结构包含一个名为 len 的字段。我无法这样做并且收到错误。
error: request for member ‘len’ in something not a structure or union.
然后我尝试了:
int len = ntohs(((record_t*)buffer)->len);
以使运算符优先级正确。这给了我warning:
dereferencing type-punned pointer will break strict-aliasing rules。
然后我声明了
record_t *rec = null;
rec = (record_t*)
我在这里做错了什么?
【问题讨论】:
-
您的编译器选项是什么?另外,专注于手头的问题,不要告诉我们你之前遇到的语法错误。
-
在 C 中,它是
NULL,而不是null。