Bonjour,
Je me retrouve confronte a un probleme que je ne pensais pas avoir.
J'ai declarer une structure nommé "Piece".
Voici le main :
Voici la fonction RotationPiece :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 int main(int argc, char *argv[]) { /* Debut du code */ /* Creation du tableau recapitulant les pieces */ Piece ListePiece[NOMBRE_DE_PIECE]; InitialisationListePiece (ListePiece); /* Un pointeur vers une Piece */ Piece *PieceCourante = &(ListePiece[T]); /* Plein de code sans rapport */ RotationPiece(PieceCourante, "horaire"); /* Fin du code */ return EXIT_SUCCESS; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 void RotationPiece (Piece *UnePiece, char Sens[]) { int futurPositionX; int futurPositionY; if (strcmp("horaire",Sens) == 0) { futurPositionX = UnePiece->positionPiece.x + UnePiece->positionSuivant.x; futurPositionY = UnePiece->positionPiece.y + UnePiece->positionSuivant.y; UnePiece = UnePiece->suivant; UnePiece->positionPiece.x = futurPositionX; UnePiece->positionPiece.y = futurPositionY; } else { futurPositionX = UnePiece->positionPiece.x + UnePiece->positionPrecedent.x; futurPositionY = UnePiece->positionPiece.y + UnePiece->positionPrecedent.y; UnePiece = UnePiece->precedent; UnePiece->positionPiece.x = futurPositionX; UnePiece->positionPiece.y = futurPositionY; } }
Bon, normalement, lorsque j'appelle RotationPiece, mon pointeur devrait pointer vers une autre instance de structure grace a UnePiece = UnePiece->suivant;
Or, cette modification n'est pas faite.
Je pensais pourtant en envoyant un pointeur que cela irai, mais apparement non.
Ou est mon erreur ?
Je sais qu'en envoyant un pointeur sur mon pointeur, ca marche, mais je pensais que cela été inutile.
Partager