以下に定義されている gml ファイルに書き込むクラスがあります。このクラスには、書き込みを行うメソッドが 1 つあります。関数を呼び出すと、メイン関数が戻ったときにコア ダンプが取得されます。クラスのオブジェクトを問題なく作成できます。書き込み関数が呼び出されたときにのみ発生します。関数もエラーなしで戻り、残りのプログラムが実行されます。
GML ライター:
class GMLWriter {
public:
void write(List<User*> usr, const char* filename);
};
void GMLWriter::write(List<User*> usr, const char* filename)
{
cout << "Filename: " << filename << endl;
ofstream outfile;
outfile.open(filename);
if (!outfile.is_open())
cout << "Couldn't open the file..." << endl;
outfile << "graph [\n";
// Write user data
for (int n = 0; n < usr.size(); n++) {
cout << "Writing node..." << endl;
outfile << "node [\n";
outfile << "id " << usr[n]->getID() << "\n";
outfile << "name \"" << usr[n]->getName() << "\"\n";
outfile << "age " << usr[n]->getAge() << "\n";
outfile << "zip " << usr[n]->getZip() << "\n";
outfile << "]\n";
}
// Write associations
for (int n = 0; n < usr.size(); n++) {
List<int> tList = usr[n]->getFriends();
cout << "Writing edge..." << endl;
//List<int> tempL = usr[n]->getFriends();
for (int i = 0; i < tList.size(); i++) {
outfile << "edge [\n";
outfile << "source " << usr[n]->getID() << "\n";
outfile << "target " << tList[i] << "\n";
outfile << "]\n";
}
}
outfile << "]"; // end graph
cout << "End function" << endl;
outfile.close();
}
ユーザーには、ファイルに書き込む変数が含まれているだけで、それらのメソッドは正常に機能します。
デバッガーでこれに何時間も費やしましたが、問題を見つけることができませんでした。どんな助けでも大歓迎です。
ありがとう!