De plus, une structure ne se déclare pas ainsi (return ????)
1 2 3 4 5
| struct pixel
int R;
int G;
intb;
return; |
mais
1 2 3 4 5 6
| struct pixel
{
int R;
int G;
int B;
}; |
1 2 3 4
| void flip_hor(struct pixel im[MAX][MAX], int row, int col)
{
....
swap(&im[i][j].R, &im[lignes-1-i][j].R); |
Ne correspond pas à la fonction swap dont le code (faux) est donné précédemment. Mais ce type d'appel est celui à effectivement utiliser et il faut modifier la fonction swap en conséquence.
void flip_hor(struct pixel im[][MAX], int row, int col)
L'ennui de cette fonction flip_hor (le premier MAX est inutile et non signifiant) est qu'elle ne fonctionne que pour une seule valeur du paramètre col, celle qui est égale à MAX qui est fixé à la compilation. L'utilisation de cette fonction en est singulièrement réduit.
Le code qui suit,
tabElementRouge =( int *) calloc ( nb_colonnes, sizeof( int) );
est une ébauche permettant de s'affranchir de cette limitation. C'est sans doute un vieux segment de code datant d'avant la définition de la structure et qui maintenant devrait être qq chose du genre:
1 2 3 4 5
| struct pixel ** tabElement= calloc(nb_lignes, sizeof(struct pixel*));
// a ajouter le test de retour du calloc
for(i=0; i<nb_lignes;i++)
tabElement[i] = calloc(nb_colonnes, sizeof(struct pixel));
// a ajouter les tests de retour des calloc |
Partager