Deuxième problème - sizeof ne renvoie la taille d'un tableau que dans certains cas
sizeof peut renvoyer la taille d'un tableau - mais que si celui-ci est:
Déclaré dans le même scope que ton appel à sizeof (en gros, si il est déclaré dans la même fonction)
Est statique (ce qui est le cas ici). sizeof ne marchera pas sur un tableau alloué dynamiquement avec malloc
Ici, tu envoies ton tableau à une fonction binToDec - en fait, ce n'est pas un tableau que tu envoies, mais un pointeur
La fonction binToDec n'a alors que la seule information d'où ton tableau commence en mémoire. La fonction ne sait pas quand ton tableau se termine.
Quant au sizeof, il va te renvoyer la taille que prend un pointeur en mémoire, c'est à dire sizeof(int *)
Afin d'éviter la confusion entre tableau et pointeur, je préconise de remplacer ta déclaration par celle-ci :
int binToDec(int *bin)
Comme ça, tu vois bien que c'est un pointeur, et non un tableau. (je parle bien du point de vue de la fonction binToDec. Bien sûr, ce que tu lui envoies est un tableau que tu as alloué statiquement dans ton main - mais ça, binToDec n'est pas sensé le savoir)
Solution possible - envoyer la longueur du tableau séparément
Ce que je te propose, c'est d'envoyer la longueur du tableau en tant qu'argument à binToDec. Ce qui veut dire:
1) Tu changes la déclaration de binToDec en la suivante
int binToDec(int *bin, int tailleBin)
2) Tu modifies ton main pour envoyer la taille du tableau à la fonction binToDec
J'ai effectué tes deux modifications, ca fonctionne nickel, merci!
fonction pour convertir du binaire en décimal
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent