typedef struct {
unsigned short int Position; // << That's what i'm trying to change!
unsigned short int OldPosition;
} Turn_s;
struct Turn_sMap{
Turn_s *Turn;
Turn_sMap *NextTurn;
};
New = new Turn_sMap;
New->Turn = new Turn_s;
New->Turn.Position = 0; // Already tried (New->Turn).Position = 0;
为什么我得到编译错误?我没有访问结构转到结构新的内部,反过来有一个名为位置的成员?或者typedef混淆了结构类型与一些指针疯狂?请帮助,我迷路了! ):
答案 0 :(得分:2)
声明Turn_s *Turn;
使Turn
成为指针类型。要访问成员对象,您需要使用->
运算符。尝试:
New->Turn->Position = 0;
答案 1 :(得分:1)
Turn_sMap::Turn
是一个指针。你需要取消引用它:
New->Turn->Position = 0;
此外,您不应该在C ++中使用typedef struct
。只需声明结构:
struct Turn_s {
unsigned short int Position; // << That's what i'm trying to change!
unsigned short int OldPosition;
};
Turn_s a;
foo(a);