bonobo78
Messages postés9Date d'inscriptionmardi 28 octobre 2003StatutMembreDernière intervention29 octobre 2003
-
28 oct. 2003 à 19:54
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 2006
-
28 oct. 2003 à 23:53
j'ai un autre petit pb, je m'explique :
j'ai le main qui appele une fonction (access) en passant un entier en parametre. Cette fonction access appele une autre fonction (lecture_fichier) en passant comme parametre le meme entier. mais il n'a plus la bonne valeur dans la fonction lecture_fichier... :(
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 28 oct. 2003 à 21:26
Salut,
Déja une erreur:
fread(&message,1024,1,File); //le '&' est en trop, car message est un char *
Ensuite je comprend pas trop ce que c'est "sock". Tu le déclares en int, tu l'utilise avec send(), write(), read()... ?
Si c'est un socket handle, retourné par la fonction socket(...), le mieux est que tu le mette dans une variable globale (déclarée en dehors de toute fonction, y compris main) et comme ca tu pourra l'utiliser partout dans ton programe sans avoir besoin de le passer en parametre a toutes tes fonctions.
Vous n’avez pas trouvé la réponse que vous recherchez ?
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 28 oct. 2003 à 23:53
Je pense que l'erreur vient tout simplement de là
fread(&message,1024,1,File)
au lieu d'écrire dans le buffer alloué, la fonction écrit la où est stocké l'adresse du buffer c'est à dire dans la pile. fread ecrit donc à l'emplacement de message et continu en écrasant le contenu de la pile à savoir les variables locales et les paramètres passés à la fonction.