Bonjour,

Je me retrouve confronte a un probleme que je ne pensais pas avoir.

J'ai declarer une structure nommé "Piece".

Voici le main :

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;
 
}
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
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.