構造体ポインタのリストからメンバにアクセスできない

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
帰国部

構造体ポインタのリストからメンバにアクセスできない

#1

投稿記事 by 帰国部 » 14年前

#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;
}



これをコンパイルしようとすると、"-> か ->* の左には構造体のポインタが必要"とエラーが出てコンパイルできません。
どこがいけないのでしょうか。

qwea

Re:構造体ポインタのリストからメンバにアクセスできない

#2

投稿記事 by qwea » 14年前

cout << *it->i << endl;

の部分ですが、演算子の優先度が原因でおかしくなっているのだと思います。

cout << (*it)->i << endl;  ではないでしょうか。

帰国部

Re:構造体ポインタのリストからメンバにアクセスできない

#3

投稿記事 by 帰国部 » 14年前

cout << (*it)->i << endl;に直したら無事コンパイルできました。
ありがとうございましたm(_ _)m


閉鎖

“C言語何でも質問掲示板” へ戻る