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 :

Sauvegarder la valeur retourner par inet_ntoa()


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 60
    Par défaut Sauvegarder la valeur retourner par inet_ntoa()
    salut,
    regardez ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
           char *addr1;
           char *addr2; 
           addr1= inet_ntoa(app->ip_1 );
           printf ("addr ip src %s  \n",addr1);
           addr2 =inet_ntoa(app->ip_2);
           printf ("addr ip src %s \n",addr1);
    mon problème est que la chaine addr1 change après l'appelle de inet_ntoa et prend la valeur de addr2.
    comment je peut sauvegarder addr1 sans que inet_ntoa le modifier ?
    La fonction inet_ntoa() convertit l'adresse Internet de
    l'hôte in donne dans l'ordre des octets du réseau en une
    chaîne de caractères dans la notation avec nombres et
    points
    .
    merci d'avance pour vos réponses.

  2. #2
    Membre éclairé Avatar de je®ome
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Par défaut
    D'après la man:

    The string is returned in a statically allocated buffer, which subsequent calls will overwrite.

    Il suffit de le copier (avec strcpy p.ex.) dans une buffer allouer avant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    char *adr;
    char *adr1;
    char *adr2;
    adr1=malloc(16);
    adr2=malloc(16);
    adr=inet_ntoa(...);
    strcpy(adr1,adr);
    adr=inet_ntoa(...);
    strcpy(adr2,adr);
    pas testé, mais cela devrait faire l'affaire.
    Il faut tester les retour de malloc....

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 60
    Par défaut
    c'est très rapide ta réponse ,alors que j'ai passer 3 heurs de recherche
    merci

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

Discussions similaires

  1. comment comparer les valeurs retournés par DBGrid
    Par Ice-tea dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/06/2006, 14h42
  2. Réponses: 1
    Dernier message: 22/05/2006, 11h27
  3. [SQL] Valeur retournée par une requête...
    Par Empty_body dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/01/2006, 22h13
  4. VB6 --> Valeurs retournées par une comboBox
    Par the java lover dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/12/2005, 16h26
  5. valeur retournée par un .js
    Par astrofiles dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/08/2005, 10h20

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