IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

structure, pointeur, memcpy


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 114
    Points : 56
    Points
    56
    Par défaut structure, pointeur, memcpy
    Bonjour,

    je dois envoyer une structure dans un buffer par l'intermédiaire d'un memcpy et reconstruire cette structure à l'arrivée.
    Mon souci est qu'a l'interieur de la structure j'ai un nombre variables de sous structure.

    Ex

    struct toto
    {
    struct titi* titis;
    };

    Donc si je fais un memcpy, a cause de mon pointeur ca risque de mal se passer.

    Une solution serait de declarer un tableau fixe de structure.
    Existe t'il une autre solution ?

  2. #2
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Points : 84
    Points
    84
    Par défaut
    Salut,
    j'ai dû mal à te comprendre.
    Tu as deux variables. Toutes les deux du type toto, et tu veux copier une des
    variable dans l'autre. C'est Ca?

  3. #3
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: structure, pointeur, memcpy
    Citation Envoyé par romeo9423
    je dois envoyer une structure dans un buffer par l'intermédiaire d'un memcpy et reconstruire cette structure à l'arrivée.
    Mon souci est qu'a l'interieur de la structure j'ai un nombre variables de sous structure.
    <...>
    Une solution serait de declarer un tableau fixe de structure.
    Existe t'il une autre solution ?
    Oui, ce que tu veux faire s'appelle la "sérialisation". Tu as mis le doigt sur un problème bien connu. Une structure C sert à organiser des données dans la mémoire de la machine, mais pas à transporter des données d'une machine à l'autre (et ce pour de nombreuses raisons dont celle que tu as évoquée)..

    Il faut utiliser un format indépendant compatible avec le flux de transport (le plus courant est la séquence d'octets, par exemple).

    Le plus simple est la conversion en texte avec un format simple comme CSV (Valeurs séparées par une virgule) ou plus complexe, mais standard, comme XML. Il existe d'autres formats standards binaires mais plus complexes à mettre en oeuvre (BER, XDR ...)
    Pas de Wi-Fi à la maison : CPL

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probléme structure pointeur fonction
    Par babouoles dans le forum Bibliothèque standard
    Réponses: 9
    Dernier message: 14/05/2008, 18h34
  2. paramètres fonction structures pointeurs
    Par tom31 dans le forum Débuter
    Réponses: 2
    Dernier message: 12/01/2008, 19h22
  3. Fonction, structure, pointeurs et scanf
    Par exhortae dans le forum C
    Réponses: 13
    Dernier message: 27/02/2007, 18h31
  4. Réponses: 10
    Dernier message: 04/01/2006, 17h57
  5. Structure, pointeur et fonction...
    Par Linaa dans le forum C
    Réponses: 15
    Dernier message: 04/12/2005, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo