私は単純なCプログラムを使ってファイルを開き、そこからデータを読み込みます。コンパイルエラーはありませんが、特定のファイルでプログラムを実行すると、「セグメンテーションフォルト:コードがダンプされました」というエラーが表示されます。私は自分のコードの一番上にprintステートメントを挿入し、実行されません。まだ何もしていないときにセグメント違反を取得することは可能ですか?コードの最初の行の前のセグメンテーションフォールト
#include <stdio.h>
int main(int argc, char **argv)
{
printf("%s", "Made it to here!");
FILE *fp;
char input[100];
fp = fopen(argv[1], "r+b");
fgets(input, sizeof(input), fp);
printf("%s", input);
fclose(fp);
return(0);
}
これはテキストバージョンで実行すると動作し、最初の行が出力されます。しかし、別のファイルtexttest.vmfで実行すると、セグメンテーションフォルトが発生し、最初のプリントは実行されません。 VMFはバルブマップファイルですが、標準的なテキスト形式です。このファイルのサイズは約3.7 KBです。何か案は?
以下の回答に従ってください。ほとんどの場合、fopenの返品をチェックしてエラーがないかどうか確認していない可能性があります。 –