Pointeurs et paramètres de fonction
Je fais appel a une fonction (decale_enigma) à partir du main
Code:
1 2 3 4
| int main(int argc, char *argv[]){
Enigma machine_chiffrage;
Enigma machine_dechiffrage;
decale_enigma(&machine_chiffrage); |
voici la fonction
Code:
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:
1 2
| chiffre_chaine(chaine,&machine_chiffrage);
/*decale_enigma(&machine_chiffrage);*/ |
comment se présente la fonction chiffre_chaine
Code:
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:
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 ........