ho risolto!
bastava aggiungere questo pezzo di codice che la prima volta non aveva funzionato
con temp dichiaratacodice:temp = davanti[i + 1]; davanti[i + 1] = davanti[j + 1]; davanti[j + 1] = temp;
Spero possa servire a qualcun'altro.codice:Ele *temp;