興味深いセグメンテーション違反があります。コード内の不明な場所で発生します。コードはかなり単純で、2 つのオブジェクトと 1 つの汎用関数です。この関数は、オブジェクトのグラフを作成することになっています。関数を呼び出す main だけでコードを実行すると、seg fault が発生し、GDB に次のコード行が表示されます。
プログラム受信信号 SIGSEGV、セグメンテーション違反。/lib/x86_64-linux-gnu/libc.so.6 からのフリー () の 0x00007ffff758a02c
関数呼び出しの直前にメインに行を追加すると、単に cout << "Check"; になります。まだセグメンテーション違反が発生しますが、チェックは出力に表示されません。ここで本当に負けました。次に何を試せばいいですか?
編集:
フラッシュの使用にご協力いただきありがとうございます。セグメント障害の原因となっているコード内の領域を見つけました。私が使用している機能は私にとって新しいものなので、まだ少し迷っています。バグを見た人はいますか?
const char* inFile = inFileP.c_str();
list<CContinent> world;
CCountry *homeCountry = new CCountry;
CCountry *neighborCountry = new CCountry;
fstream filestr;
filestr.open(inFile, fstream::in | fstream::out | fstream::app);
string line;