• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:セグメンテーションフォルトが起きます。)

gccでセグメンテーションフォルトが起きます

このQ&Aのポイント
  • gccでセグメンテーションフォルトが起きています。STLのコードで問題が起きているようです。
  • gdbでデバッグした結果、STLのコードの中でセグメンテーションフォルトが発生しています。
  • 質問者は何かわかる方にアドバイスを求めています。

質問者が選んだベストアンサー

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.1

STL内部でセグメンテーションフォルトがおきたとしても 恐らく原因は外部にあるでしょう。 たとえばメモリ破壊を行っている。 int a[2]; std::vector v; for( int i = 0 ; i <= 2 ; i++ ) a[i] = 0; この後にvにアクセスにいった等が考えられます。 もちろんSTLでも std::vector v; v.resize(10)としときながら v[100]にアクセスしても問題です。

nagata20000
質問者

お礼

回答ありがとうございます。 メモリ破壊は起こしていないつもりなのですが、、、 ちなみにCNFLiteral::CNFLiteralは次のような ソースなのですが何かわかることはありますでしょうか。 class CNFLiteral { private: map<short,vector<Clause> > table; public: CNFLiteral(CNF &cnf) { CNF::iterator p; CNF::iterator e=cnf.end(); for(p=cnf.begin();p!=e;++p) { Clause::iterator l; for(l=(*p).first.begin();l!=(*p).first.end();++l) { table[*l].push_back((*p).first); } } } …

nagata20000
質問者

補足

解決しました。 おっしゃるとおり確保していないメモリに アクセスしていました。 失礼しました。

関連するQ&A

専門家に質問してみよう