E io ti ho gi� detto che il debugger lo devi usare eseguendo passo passo per individuare la linea in cui avviene il problema. In questo modo non può andare in seg fault se il problema è nel codice che hai mostrato se non lo esegue.
Quello che manca da capire � come hai dichiarato il vettore p[] che utilizzi nella fread.
E' quello il problema.