繁体   English   中英

使用指针表示法访问结构数组

[英]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;

我使用以下结构将 memory 分配给工资单

payroll.array = new employeeRecordT[payroll.num];

其中 payroll.num 表示数组中元素的数量。 我可以使用数组表示法访问employeeRecordT 的元素名称,例如

payroll.array[i].title

我想知道如何使用指针表示法访问它,我试过了

payroll.(array+i)->name = "Vikas";

我从 g++ 收到以下错误消息

toy.cc:30:13: 错误: '(' token toy.cc:30:14: 错误: 'array' 未在此 scope 中声明之前的预期 unqualified-id

我试图了解我应该使用什么以及为什么? 各位大侠帮忙解释一下。

提前致谢。

问候, 维卡斯

(payroll.array+i)->name = "Vikas";

arraypayroll的成员,因此当您执行payroll.(array+i)时,括号表示法(即“首先执行此操作”)试图使用变量array ,而不是payroll中的变量 array 。

当然,使用C++,更好的解决方案是Neils。 如果可能,请使用 std::vector 而不是您自己的动态分配的存储。

如果它很痛,请不要这样做。 请改用结构的 std::vector 。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM