使用指针表示法访问结构数组
Accessing a array of Structs using pointer notation
我正在尝试自己学习C++,并尝试过这一点。我有一个结构,其中一个成员是另一个结构的数组。我有一个关于替代记法的问题。
我定义的结构是
struct employeeRecordT {
string name;
string title;
string ssnum;
double salary;
int withholding;
};
struct payrollT {
int num;
employeeRecordT *array;
} payroll;
我使用以下构造将内存分配给工资单
payroll.array = new employeeRecordT[payroll.num];
其中payroll.num表示数组中元素的数量。我可以使用数组表示法访问employeeRecordT的元素名称,例如
payroll.array[i].title
我想知道如何使用指针表示法访问它,我已经尝试过
payroll.(array+i)->name = "Vikas";
我从g++得到以下错误消息
toy.cc:30:13:错误:在"("标记之前应为不合格的idtoy.cc:30:14:错误:未在此作用域中声明"array"
我正在努力理解我应该使用什么,为什么?你们能帮忙解释一下吗。
提前谢谢。
谨致问候,Vikas
(payroll.array+i)->name = "Vikas";
array
是payroll
的成员,因此当您执行payroll.(array+i)
时,括号表示法(即"先执行此操作")试图使用变量array
,而不是payroll
范围内的变量。
当然,使用C++,更好的解决方案是Neils。如果可能的话,使用std::矢量而不是您自己的动态分配存储。
如果很痛苦,不要这么做。请使用结构的std::向量。
相关文章:
- 通过方法访问结构
- 使用不带参数的函数访问结构元素
- 仅使用结构名称访问结构成员
- 使用内存地址访问结构的属性值
- 通过指针偏移量访问结构变量值
- 如何从实现接口的模板化类实例访问结构
- 在C++中访问结构数组中的数据
- 如何使用 pybind 访问结构的属性?
- 尝试在 qml 中访问结构成员的 QList
- 无法在 Mosquitto MQTT Broker 插件上访问结构体 mosquitto 的元素
- C++:从其他类访问结构的私有成员向量
- C++/CLI -- 访问结构成员
- 当我尝试访问结构类型时,我收到 std::bad_variant_access 异常
- 如何通过不同的指针使用类的对象访问结构?(链表)(C++)
- 在C++中使用链表的堆栈实现中,访问结构体headNode成员count和top会导致运行时错误
- 如何访问结构成员作为指针
- 为什么不能指向指针,在没有强制转换的情况下访问结构成员?
- 为什么在使用 auto_ptr 样式类访问结构成员时会出现'unidentified identifier'?
- 通过指针算法访问结构数据成员
- 通过 C++ 中的另一个结构成员访问结构