マップのベクトル内でマップ要素のキーを検索するために、次の関数を使用しています。
Entry* SymTab::lookup(const char* name)
{
for (int i=0;i<table.size();i++) //table is the vector
{
map<const char*, Entry, ltstr>::iterator its= table.at(i).find(name);
if (its != cur.end())
{
Entry* obj = &its->second;
cout<<(*its).first<<endl;
return obj;
}
}
}
この関数は、最初のベクトルインデックス(at(0))内の任意のアイテムの値を正しく返します。しかし、2番目のインデックス(at(1))内の要素にアクセスしようとすると、セグフォールトが発生します。マップが正しく挿入され、2番目のインデックスに入力されていることを確認します。
誰かがここで問題を見ますか?