Heilà Johnny_Depp!


...
2)if((fp = fopen("c:\\documenti\\prova.txt","r")) == NULL)
non apre il file prova.txt ma si limita soltanto a verificare se il file esiste QUINDI non puoi alla fine del tuo codice chiudere il file!!! se non lo hai prima aperto
...
Sicuro?

...
codice:
if((fp=fopen("c:\\documenti\\prova.txt","r"))==NULL)     
    printf("Impossibile trovare\nil file specificato nel patch\n"); 
else{
    fp=fopen("c:\\documenti\\prova.txt", "r"); //ORA lo apro
    //leggo il file...    
    fclose(fp); //e all'interno dell'ELSE lo chiudo!!!
    } 
}
...
questo non dà errori evidenti, ma "mangia" un pochina di memoria perché la prima fopen alloca qualcosa per i cursori nel file (poco, ok) che viene riallocato da un'altra parte alla seconda chiamata di fopen, sovrascrivendo fp, cioè il puntatore all'area di memoria in precedenza allocata.


HTH