Tu as tout à fait raison. Ce problème se retrouve aussi en C++ lorsqu'on recopie des objets qui contiennent des pointeurs. Il faut faire son propre opérateur de copie (le "=") pour veiller à recopier les éléments pointés.
La manière la plus simple pour copier ta chaîne via une socket est qu'elle n'ait pas été allouée dynamiquement. En ayant un "char texte[1024]" par exemple c'est bon puisque toute ta chaîne est dans ta structure.
Tu risques d'ailleurs d'avoir un autre problème avec ton "P.entier". En effet, le codage d'un entier dépend de l'architecture du système. Sur un système il est codé de gauche vers droite et sur un autre de droite vers gauche. Si tu communiques avec des systèmes identiques ça ira mais si tu transfères ce "P" de Unix vers Windows, tu risques de ne jamais retrouver "1" à l'arrivée.
Va sur mon site [
fr.lang.free.fr] tu y trouveras un cours sur l'implémentation des sockets qui explique comment résoudre ce pb.
Quand au "char *", si t'es vraiment obligé de le mettre ben il faudra alors magouiller (passer par une chaîne intermédiaire, etc)
Salut
Poste le Saturday 18 June 2005 07:50:24