- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:セグメンテーションフォルトが起きます。)
gccでセグメンテーションフォルトが起きます
このQ&Aのポイント
- gccでセグメンテーションフォルトが起きています。STLのコードで問題が起きているようです。
- gdbでデバッグした結果、STLのコードの中でセグメンテーションフォルトが発生しています。
- 質問者は何かわかる方にアドバイスを求めています。
- みんなの回答 (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]にアクセスしても問題です。
お礼
回答ありがとうございます。 メモリ破壊は起こしていないつもりなのですが、、、 ちなみに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); } } } …
補足
解決しました。 おっしゃるとおり確保していないメモリに アクセスしていました。 失礼しました。