C++ 指向结构数组中的结构的指针

C++ 指向结构数组中的结构的指针,c++,C++,所以我需要得到结构#1(e[0])的代码,但我得到以下错误:; “错误:请求'emp1'中的成员'get_code',该成员的指针类型为'Employee*'(可能您想使用'->'?)” 我真的不明白如何解决这个问题。另外,它是一个赋值,所以我必须使用结构,而且,我不知道“->”是什么,但是如果它是任何运算符或什么的,我不允许使用它,因为我们还没有被教过。 (对类似问题的回答建议使用->这样对我不起作用。) 我还尝试使用*(emp1.get_code() #包括 #包括 使用名称空间std; 结

所以我需要得到结构#1(e[0])的代码,但我得到以下错误:; “错误:请求'emp1'中的成员'get_code',该成员的指针类型为'Employee*'(可能您想使用'->'?)” 我真的不明白如何解决这个问题。另外,它是一个赋值,所以我必须使用结构,而且,我不知道“->”是什么,但是如果它是任何运算符或什么的,我不允许使用它,因为我们还没有被教过。 (对类似问题的回答建议使用->这样对我不起作用。) 我还尝试使用*(emp1.get_code()

#包括
#包括
使用名称空间std;
结构雇员{
私人:
字符串代码;
字符串名;
浮动工资;
公众:
无效集合代码(字符串c){
代码=c;
}
无效集合名称(字符串n){
name=n;
}
无效集合(浮动s){
工资=s;
}
字符串get_code(){
返回码;
}
字符串get_name(){
返回名称;
}
浮点数{
返回工资;
}
};
内部主(空){
雇员e[2],*emp1,*emp2;
字符串c,n;
浮子;

对于(int i=0;i首先,这条线不正确:

*emp1=e[0];
行所做的是将结构值“e[0]”分配给指针“emp1”处的结构。但是,指针“emp1”从未初始化,因此您最终将在无效位置写入。 你需要写的是:

emp1=&e[0];
这实际上会将emp1设置为“e[0]”的位置

其次,当您想要访问指针的成员时,使用符号“->”。 在这种情况下,您不应写:

cout<<emp1.get_code();

这个错误消息有什么不清楚的地方吗?错误告诉你使用
emp1->get_code()
x->y()
通常相当于
(*x).y()
“我也试过使用
*(emp1).get_code()
”非常接近!这个答案是不够的。行
*emp1=e[0];
上面引用了一个未初始化的指针并复制到它。真的。我的错!我会稍微修改一下注释。
cout<<emp1.get_code();
cout<<emp1->get_code();