Buonasera a tutti!!!
Il mio problema è il seguente: sto cercando di creare una funzione che mi permetta di girare una matrice di dimensioni l x h verso destra o verso sinistra...
Dato che non si tratta appunto di una matrice "quadrata", pensavo di creare un secondo array con le dimensioni invertite h x l..
quindi, per prima cosa alloco la memoria necessaria per il secondo array r, metto il contenuto del primo array p in r, svuoto p, alloco memoria per un nuovo p di dimensioni h x l, metto il contenuto di r in p e infine svuoto r...alla fine return p...
Ovviamente metto in pratica il tutto e non funziona -.-''
Secondo voi dove sbaglio??
Posto il codice:
Spero si capisca il problema...grazie per l'attenzionechar** destra(int l, int h, char **p){
int i, j;
char **r;
r=(char **) malloc( l * sizeof(char *));
for (i=0; i<l; i++){
r[i]=(char *) malloc( h * sizeof(char));
}
for(i=0; i<l; i++){
for(j=0; j<h; j++){
r[i][j]=p[h-j-1][i];
}
}
for (i=0;i<h;i++)
free(p[i]);
free(p);
p=(char **) malloc( l * sizeof(char *));
for (i=0; i<l; i++){
p[i]=(char *) malloc( h * sizeof(char));
}
for(i=0; i<l; i++){
for(j=0; j<h; j++){
p[i][j]=r[i][j];
}
}
for (i=0;i<l;i++)
free(r[i]);
free(r);
return p;
}![]()