#include <iostream>
#include <list>
using namespace std;
struct Element
{
int i;
};
int main()
{
list<Element*> l;
list<Element*>::iterator it;
Element e = {3};
l.push_front(&e);
it = l.begin();
cout << *it->i << endl;
return 0;
}
これをコンパイルしようとすると、"-> か ->* の左には構造体のポインタが必要"とエラーが出てコンパイルできません。
どこがいけないのでしょうか。
構造体ポインタのリストからメンバにアクセスできない
Re:構造体ポインタのリストからメンバにアクセスできない
cout << *it->i << endl;
の部分ですが、演算子の優先度が原因でおかしくなっているのだと思います。
cout << (*it)->i << endl; ではないでしょうか。
の部分ですが、演算子の優先度が原因でおかしくなっているのだと思います。
cout << (*it)->i << endl; ではないでしょうか。
Re:構造体ポインタのリストからメンバにアクセスできない
cout << (*it)->i << endl;に直したら無事コンパイルできました。
ありがとうございましたm(_ _)m
ありがとうございましたm(_ _)m