Pracuję nad prostym programem C, aby otworzyć plik i odczytać z niego niektóre dane. Nie ma błędów kompilacji, ale po uruchomieniu programu dla określonego pliku pojawia się błąd "Usterka segmentacji: zrzucony kod". Wstawiłem polecenie drukowania na samej górze mojego kodu, i to nie jest uruchamiane. Czy możliwe jest uzyskanie błędu segmentacji, gdy jeszcze nic nie zrobiłeś?Błąd segmentacji przed pierwszą linią kodu
#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);
}
Działa to, gdy uruchomię go w wersji tekstowej, wypisuje pierwszą linię. Jednak po uruchomieniu go na innym pliku, texttest.vmf, otrzymuję błąd segmentacji i pierwszy wydruk nie zostanie wykonany. Pliki VMF są plikami map zaworów, ale są w standardowym formacie tekstowym. Ten plik ma około 3,7 KB. Jakieś pomysły?
Powinieneś zastosować się do poniższej odpowiedzi, najprawdopodobniej problem polega na tym, że nie sprawdzasz zwrotu fopen, aby sprawdzić, czy wystąpił błąd. –