Hai provato ad allocare spazio per str? Una soluzione banale:

codice:
...
typedef char string[256];
...
vedi come va. Per inciso, a me crasha subito dopo la fscanf().