我有变量 mode
,我用下面一行声明它:
StatusRecord mode;
StatusRecord
是一个struct
,它包含多个不同类型的变量。
我现在想创建一个指向 mode
的指针,并通过使用函数填充其属性/字段来用一些数据填充该指针。我试过这样做:
StatusRecord mode;
StatusRecord *modePtr = &mode;
DataStore->getModeData(*modePtr);
在这里,我声明了 struct
变量,创建了一个指向它的指针,并使用 getModeData()
函数填充该指针。但是,我现在想使用我刚刚在条件语句中填充的 struct ptr
的属性:
if(*modePtr->eraseSelect ==2){
...
}
但是我在这一行遇到编译错误:
Error: operand of '*' must be a pointer
这是否意味着 eraseSelect
属性应该是一个指针以及“modePtr”?我该如何解决这个错误?
最佳答案
试试这个:
if(modePtr->eraseSelect ==2){
...
}
或者这个:
if((*modePtr).eraseSelect ==2){
...
}
因此您可以使用“点”语法到达实例的字段或使用“箭头”语法到达实例指针的字段。在大多数情况下,“箭头”更合适。
关于c++使用指针访问对象的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32476185/