'.Position'左侧必须具有类/结构/联合
Left of '.Position' must have class/struct/union
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;
为什么我会收到编译错误?我是否没有访问结构 在结构内转动 New,而结构又有一个名为 Position 的成员?还是 typedef 会用一些指针疯狂来弄乱结构类型?请帮帮,我迷路了!):
声明
Turn_s *Turn;
使Turn
成为指针类型。若要访问成员对象,需要使用->
运算符。尝试:
New->Turn->Position = 0;
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);
相关文章:
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 如何将结构/联合数组的成员传递到函数中
- error dllimport 函数的定义不允许在一个特定的联合中,而其他类、结构和联合将按预期导出
- 为什么继承的结构成员在联合中无法访问?
- 在向量 C++14(无限制联合)的结构内的联合中创建和存储字符串
- 尝试初始化结构内的联合时出错
- 嵌套在联合中的结构嵌套在 C 中的结构中
- 成员引用基类型 'char' 不是 C++ 中的结构或联合
- 结构内部结构的联合 - 混合 C 和 C++
- 联合初始化中的结构
- 成员引用基类型不是结构或联合
- 在结构中使用联合的目的是什么?
- 错误 C2228 左侧'.setDay'必须具有类/结构/联合
- 如何从平面缓冲区中反序列化联合结构的 void* 值的大小
- 联合结构 C# - 等效或等于
- 将C++联合结构转换为 VB6
- C ++:联合 -> 结构,解释?
- 编译器特定联合结构实现的标准替代方案
- 具有构造函数的类的匿名联合/结构
- 联合结构有什么作用