これは私を完全に神秘的にしています。クラス宣言には、次の2行があります。
std::multimap<int, int> commands;
std::multimap<std::string, std::string> config;
コードは問題なくコンパイルされますが、実行すると次のエラーが発生します。
*** glibc detected *** ./antares: free(): invalid pointer: 0xb5ac1b64 ***
2つの変数が後でどのように処理されるかとは関係がないことを除けば、十分に単純なようです。コードの残りの部分で変数へのすべての参照を削除しましたが、それでもクラッシュしました。行の1つ(どちらか1つ)をコメントアウトしましたが、プログラムは問題なく実行されました。どちらの特定の変数でもエラーが発生しないのはなぜですか?私はSTLにバグがないことを前提に作業していますが、コードがこれをどのように実行できるかについてのアイデアが不足しています。
これは私を困惑させたので、あなたが提供できるどんな助けにも感謝します。ワイアット
編集:私はSTLに問題があることを示唆していません、それは私が少し気難しいだけでした。私はバグが私のコードにあることを知っています、私が知りたいのは-参照されていない変数を宣言するとそれがクラッシュする可能性があるのは何が間違っている可能性がありますか?なぜそれが私のコードに影響を与えるのでしょうか?
私のコードは数千行の長さなので、誰かがそれを読む価値はありません。私は正しい方向に私を向けてくれる人を探しています。