Originariamente inviato da Zorgatone
Come vedi nel mio output invece crasha dopo avermi detto se il file è stato aperto o meno e quindi alla fine... io rimuovendo fclose(fp); riesco a farlo girare senza crash e sarebbe la soluzione però mi scoccia non sapere il motivo esatto per cui mi dà l'errore per questo mi serviva il parere di un buon programmatore C...
Anche se tu dirai cento volte che la colpa è di fclose, resta il fatto che l'errore è nell'uso di str senza avere allocato la relativa memoria. Il fatto che il problema emerga solo quando chiami la fclose è un puro caso.

Fare un typedef char * string non trasforma un semplice puntatore ad un array di caratteri in una stringa come è intesa in linguaggi di più alto livello, in C devi sempre e comunque gestirti da te la memoria