struct coord
est un type et c
est une variable de type struct coord
qui peut contenir 10 X 10
struct coord
éléments.
Il devrait être comme suit
void rotateFig(struct coord c[10][10])
Une chose à noter lorsque vous travaillez avec tableau multi-dimension C
est qu'il ne peut pas être revenir en arrière d'une fonction. Pour plus de détails, lisez this. Il n'est donc pas conseillé d'utiliser le format ci-dessus comme C
par défaut transmet les arguments par valeur et non par adresse.
Alors que @ Mr.TAMER mentionné dans sa réponse, vous devez utiliser les éléments suivants
void rotateFig(struct coord** c, int d1, int d2)
OTOH, vous pouvez utiliser le code rotate suivant pour votre référence! Il fait pivoter un tableau 2d à 90 degrés!
#include <stdio.h>
#define N 10
int matrix[N][N];
void display()
{
int i, j;
printf("\n");
for (i=0; i<N; i++) {
for (j=0; j<N; j++)
printf("%3d", matrix[i][j]);
printf("\n");
}
printf("\n");
return;
}
int main()
{
int i, j, val = 1;
int layer, first, last, offset, top;
for (i=0; i<N; i++)
for (j=0; j<N; j++)
matrix[i][j] = val++;
display();
for (layer = 0; layer < N/2 ; layer++) {
first = layer;
last = N - layer - 1;
for (i=first; i< last ; i++) {
offset = i - first;
top = matrix[first][i];
matrix[first][i] = matrix[last-offset][first];
matrix[last-offset][first] = matrix[last][last-offset];
matrix[last][last-offset] = matrix[i][last];
matrix[i][last] = top;
}
}
display();
return 0;
}
Espérons que cela aide!
Voir: http: // www.dfstermole.net/OAC/harray2.html –