mah :master:
la "singola" allocazione/deallocazione non mi sembra errata...
anche se non ho capito:
a cosa serve allocare dinamicamente "n" (visto che non viene chiesto di immetterla) in X e Y in main()... e poi la funzione che hai postato chiama altre 4/5 funzioni e sicuramente l'errore si verifica in una di queste.