Non ho riportato tutto il main(), n è immessa dall'utente da tastiera.a cosa serve allocare dinamicamente "n" (visto che non viene chiesto di immetterla) in X e Y in main()...
Ok, potrebbe anche darsi, ma qualsiasi cosa facciano le 4/5 funzioni che vengono chiamate il fatto che prima di uscire gli array vengano deallocati con free non dovrebbe riportare tutto allo stato iniziale e quindi pronto per la prossima allocazione-esecuzione?la funzione che hai postato chiama altre 4/5 funzioni e sicuramente l'errore si verifica in una di queste