头文件中有两个typedef struct

typedef struct {
    int fallLevel;
    unsigned long lastStepTime;
} PlayerFallStruct;

typedef struct {
    int id;
    char* name;
    int x;
    int y;
    PlayerFallStruct playerFall;

} Client;

我不知道如何访问PlayerFallStruct playerFall。如果我用
((PlayerFallStruct*)packetClient->playerFall)->fallLevel=0;
编译器抛出错误:
Client.c:46:4:错误:无法转换为指针类型
((PlayerFallStruct*)packetClient->playerFall)->fallLevel=0;
为什么?哪里有问题?如何访问我的stuct

最佳答案

很简单!!!!记住访问结构的规则

'.' for static object of structure
'->' for pointer type obj of structure.

所以,让我们以你的案例为例。
结构客户端*数据包客户端;
所以,在您的情况下使用“->”。你已经创建了playerFallStruct的静态对象。因此,'.'运算符用于访问PlayerFallStruct中的成员。
packet_client->PlayerFall.fallLevel = 0

希望有帮助:):)快乐的编码:):)

09-09 19:21