Quella struttura è stata allocata sullo stack, viene deallocata automaticamente quando la funzione termina, non c'è bisogno di usare free (anzi, come puoi vedere giustamente l'applicazione va in crash). Usa free solo per memoria allocata nell'heap con malloc, realloc o calloc.