Buon giorno, questo codice ci da un 'errore di segmentation fault
evidentemente il problema è su i puntatori sulla struttura
come possiamo risolvere tale problema?
codice:#include<stdio.h> typedef struct { char nome[20]; char numero[20]; } contatto; char name[20]; int EsisteFile( char nomeFile[] ) { FILE *fp; fp=fopen("lista.dat","rb"); if (fp == NULL){ return 0; } else { fclose(fp); return 1; } } void Inserimento ( char nomeFile[], char name[20] ){ FILE *fi, *fe; contatto p, pt; int fine=0; int EsisteFile( char nomeFile[] ); if (!EsisteFile( nomeFile)){ fi=fopen("lista.dat","wb"); fwrite(&pt,sizeof(contatto),1,fi); fclose(fi); } else { fi=fopen("lista.dat","rb"); fe=fopen("temporaneo.dat","wb"); while (fread(&p,sizeof(contatto),1,fi)){ if (strcmp(p.nome,name)<0) { fwrite(&p,sizeof(contatto),1,fe); } else { fwrite(&pt,sizeof(contatto),1,fe); break; } } while (!EOF){ fread(&p,sizeof(contatto),1,fi); fwrite(&p,sizeof(contatto),1,fe); } } fclose(fi); fclose(fe); remove(nomeFile); rename("temporaneo.dat", nomeFile); } int main () { char nomefi[] = "lista.dat"; char casa[20]; EsisteFile (nomefi); printf("Nome?"); scanf("%s", casa); Inserimento ( nomefi, casa ); }

Rispondi quotando