Salve a tutti ragazzi vorrei un aiuto da voi per risolvere questo esercizio in c :
ricevo in come parametro un puntatore ad un struct matrice:
struct matrice {
size_t rows, cols;
double *data;
};
struct matrice *ruota_v(const struct matrix *m, int n)


La funzione accetta come parametri un puntatore ad una matrice m e un int n e deve
restituire un puntatore a una nuova matrice allocata dinamicamente che contiene la
matrice ottenuta ruotando le righe di m verticalmente dall’alto verso il basso n
volte, facendo ad ogni rotazione diventare l’ultima riga la prima. Una rotazione
con n negativo è l’operazione inversa.
Ad esempio ruotare la matrice
( 1 2 3 )
( 4 5 6 )
( 7 8 9 )
di n=1 posizioni produce la matrice
( 7 8 9 )
( 1 2 3 )
( 4 5 6 )
Ruotarla invece di di n=-1 posizioni produce la matrice
( 4 5 6 )
( 7 8 9 )
( 1 2 3 )
Se il puntatore passato alla funzione è NULL la funzione ritorna NULL.
Non ho proprio iea di come svolgerlo aiuti?