プログラムでセグメンテーション違反が発生したときに、デバッグを試みていました。私はそれを巻き戻しが呼ばれるところまで追跡しました。
ISBNPrefixオブジェクトが作成されると、ファイルが開かれます
ISBNPrefix::ISBNPrefix(const char* filename)
{
file = fopen( filename, "r" );
}
ファイルはISBNPrefixクラスのメンバーです。
class ISBNPrefix {
FILE* file;
public:
ISBNPrefix(const char* filename);
bool isRegistered(int area) const;
int minNoDigits(int area) const;
bool isRegistered(int area, const char* publisher) const;
~ISBNPrefix();
};
ISBNPrefixオブジェクトを作成する行は次のとおりです。
ISBNPrefix prefixList("prefixRanges.txt");
prefixRanges.txtは、私のディレクトリ内のファイルの名前です
現在、このセクションでセグメンテーション違反が発生しています。
//-------------------------------
cout << "MADE IT 1" << endl;
//-------------------------------
rewind( file );
//-------------------------------
cout << "MADE IT 2" << endl;
//-------------------------------
どの出力:
MADE IT 1
Segmentation fault
デコンストラクター:
ISBNPrefix::~ISBNPrefix()
{
if( file != NULL )
{
fclose(file);
}
}
ファイルが閉じられる唯一の場所です
編集:いくつかのトラブルシューティングの後、解決策が見つかりませんでした、そして私がすべてを投稿することが提案されました。私の評判は低く、2つ以上のリンクを投稿することはできないので、ペーストビンのリンクはコメントセクションにあります。