Ciao a tutti, sono 2 giorni che mi sto scervellando su come ruotare a destra e/o a sinistra una matrice (quadrata) in C.

Di sicuro sarà una cavolata ma ora non mi viene proprio in mente.

L'array l'ho creato e inizializzato in questo modo:

char** matrice(int d, **p){
int i, j;
p=(char **) malloc(d * sizeof(char *));
for(i=0;i<d; i++)
p[i]=(char *)malloc( d * sizeof(char));

for(i=0;i<d;i++){
for(j=0;j<d;j++)
p[i][j]='o';
}
return p;
}


Successivamente scritta una funzione che la stampasse.

Ora mi serve un'altra funzione che, nel main, inserendo il comando r(destra) o l(sinistra), mi ruoti la matrice o a destra o a sinistra (di 90°).
Spero di essere stato chiaro e spero che sappiate rispondere a questa mia domanda, grazie.