Sto lavorando a un semplice programma C per aprire un file e leggere alcuni dati da esso. Non ci sono errori di compilazione, ma quando eseguo il programma su un determinato file, ottengo un errore "Segmentation Fault: code dumped". Ho inserito una dichiarazione di stampa nella parte superiore del mio codice e non viene eseguita. È possibile ottenere un errore di segmentazione quando non hai ancora fatto nulla?Errore di segmentazione prima della prima riga del codice
#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);
}
Questo funziona quando lo eseguo sulla versione testo di se stesso, stampa la prima riga. Tuttavia, quando lo eseguo su un altro file, texttest.vmf, ottengo l'errore di segmentazione e la prima stampa non viene eseguita. I VMF sono Valve Map Files, ma sono in formato testo standard. Questo file ha una dimensione di circa 3,7 KB. Qualche idea?
Dovresti seguire la risposta qui sotto, il problema più probabile è che non stai controllando il ritorno di fopen per vedere se c'è stato un errore. –