Valeur reçue différente de la valeur retournée [Résolu] [C] - C - Programmation
Marsh Posté le 21-04-2005 à 01:57:48
Ma main a couper que tu n'as pas declare ta fonction avant de l'appeler dans main. Donc dans main le compilo croit qu'elle renvoit un int, et cast les 4 premier octets de la valeur renvoyee par lire_double en double... Ce qui donne evidemment n'importe quoi.
Marsh Posté le 21-04-2005 à 02:13:57
argghhhhhhhhhhhh Merciiiiiiiiii !!!
expérience N°1 : éviter de programmer la nuit .
Marsh Posté le 21-04-2005 à 01:12:49
Bonjour ,
J'ai un gros souci dont l'explication dépasse certainement très largement ma compréhension du C .
Je m'explique :
j'ai une fonction dont le proto est :
qui, comme son nom l'indique, va lire un double à une adresse donnée et qui me renvoie la valeur lue. Seulement, lorsque je l'appelle, la valeur que je reçois est différente de celle qu'elle m'a envoyée .
Pour être un peu plus clair, avant de renvoyer le double que j'ai lu dans ma fonction lire_double, je l'affiche. Sa valeur correspond alors tout à fait à ce que j'attend. Mais par contre, lorsque que j'appelle lire_double dans mon main et que j'affiche la valeur que me renvoie lire_double, celle-ci est différente (et donc fausse) de celle que j'ai affichée juste avant dans la fonction .
Et du coup je suis complètement dépassé par les événements . Alors si une âme charitable voulait bien se pencher sur mon cas, ou ne serait-ce que me donner quelques pistes de recherche ce ne serait pas de refus .
Merci d'avance .
Description simpliste de ma fonction lire_double et de son appel dans le main :
Alors je suis au courant que ma façon de stocker des doubles et d'aller les lire dans tab_cadres est plus que contestable, mais elle m'est imposée . De plus, tout ce qui concerne les malloc sur le char **tab_cabres est correct (preuve en est le résultat correct qui m'est affiché dans lire_double() ).
Message édité par HannibAlBundy le 21-04-2005 à 02:14:20