1. Neues Array erstellen
2. Kopieren, dabei bei beiden Arrays jeweils unterschiedliche Indizes benutzen
3. Das neue Array zurückgeben
So schwierig?
Oder soll das ganze in-place arbeiten? Dann wäre ein wenig mehr erforderlich, aber solange es bei quadratischen Arrays bleibt, kein Problem...
Sowas ungefähr:
Delphi-Quellcode:
for i := 0 to High(arr) do
for j := 0 to i do
Exchange(arr, i, j); // Hier arr[i,j] und arr[j,i] tauschen