我正在尝试自己学习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:错误:在'('标记之前预期的非限定标识 toy.cc:30:14:错误:'array'未在此范围内声明
我想了解我应该使用什么以及为什么?你们能帮忙解释一下吗?
提前致谢。
此致 维卡斯
答案 0 :(得分:7)
(payroll.array+i)->name = "Vikas";
array
是payroll
的成员,因此当您执行payroll.(array+i)
时,括号表示法(即“首先执行此操作”)尝试使用变量{{1} },而不是array
范围内的那个。
当然,使用C ++,更好的解决方案是Neils。如果可能,请使用std :: vector而不是您自己的动态分配存储。
答案 1 :(得分:5)
如果疼,不要这样做。改为使用结构的std :: vector。