ho un problema con un programma, mi da segmantation faults e non capisco perchè, c'è qualche funzione che può stamparmi il tipo di errore?
Grazie Francesco
ho un problema con un programma, mi da segmantation faults e non capisco perchè, c'è qualche funzione che può stamparmi il tipo di errore?
Grazie Francesco
Per la gestione degli errore si possono usare le funzioni assert(), contenuta nel file di libreria assert.h, e perror(), contenuta nel file di libreria errno.h.
Per quanto riguarda assert() il suo prototipo è:
Mentre per quanto riguarda perror() il prototipo è:void assert( int espressione);
Eccoti due esempi di impieghi delle due funzioni:void perror( char *msg );
.........
int x;
printf("Inserire valore intero: ");
scanf("%d", &x);
assert( x >= 0 );
printf("\nHai inserito %d", x);
return 0;
...........
FILE *fp;
char filename[60];
puts("Inserisci nome o percorso del file: ");
gets(filename);
if(( fp = fopen (filename, "r")) == NULL)
{
perror("Errore!:");
printf("errno: %d", errno);
getchar();
}
else
{
printf("FIle aperto in lettura");
fclose(fp);
}
return 0;
CIAO
NO! per controllare i segfault l'unico modo e' quello di runnare il programma in debugging mode e di vedere la linea incriminata. Cmq dovresti accorgertene anche da solo...
bye
There are 10 kinds of people in the world: who knows the binary numeration and who not
NO!
Un inizio: prova a compilare i files con l`opzione -g e poi avvia il programma con gdb. Cmq sono quasi sempre errori associati a puntatori usati impropriamente.. Controlla *bene* il codice.
Ciao.