Je fais appel a une fonction (decale_enigma) à partir du main
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
int main(int argc, char *argv[]){
  Enigma machine_chiffrage;
  Enigma machine_dechiffrage;
decale_enigma(&machine_chiffrage);
voici la fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
void decale_enigma(Enigma *e) {
  int i;
  printf("\n\ncrans[0] = %d",*e->crans[0]);
les résultats du printf sont corrects
pour des problèmes de tp je suis contraint de l'appeler à partir d'une autre fonction et je ne dois pas bousculer les paramètres
séquence d'appel dans le main
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
chiffre_chaine(chaine,&machine_chiffrage);
   /*decale_enigma(&machine_chiffrage);*/
comment se présente la fonction chiffre_chaine
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
char* chiffre_chaine(char *c, Enigma *e) {
  Enigma machine_chiffrage;
  Enigma machine_dechiffrage;
 decale_enigma(&machine_chiffrage);
et là le même printf donne des résultats aberrants
Enigma est une structure
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
typedef struct enigma {
  char rotors[NB_ROTORS][NB_LETTRES];
  int crans[NB_ROTORS - 1][NB_LETTRES];
} Enigma;
Manifestement le passage de paramètres pose problème et je ne sais comment le résoudre ... merci ........