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 :

Allocation dynamique d'un tableau de structures


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 72
    Points : 29
    Points
    29
    Par défaut Allocation dynamique d'un tableau de structures
    Bonjour tout le monde, je débute en C, et je fais face au problème suivant :

    j'ai la structure suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef struct arp_entry
    {
             char ip;
             char mac;
             char dev;
    }ARP_ENTRY_t;
    cette structure se remplie par les informations récupérées de la table ARP, qui sont l'@ Ip, l'@ MAC et le device.

    Le problème c'est que je ne sais pas comment faire une allocation de la taille de cette structure, sachant que la taille de la table ARP varie.

    Merci beaucoup.

  2. #2
    Membre éclairé Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Points : 862
    Points
    862
    Par défaut
    L'adresse IP, MAC et le nom du device ne tiennent pas sur un caractère...

    Ta structure doit contenir:
    -> soit des tableaux à taille définie, par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef struct arp_entry
    {
    char ip[8];
    char mac[16];
    char dev[30];
    }ARP_ENTRY_t;
    -> soit des tableaux dynamiques par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    typedef struct arp_entry
    {
    char *ip;
    char *mac;
    char *dev;
    }ARP_ENTRY_t;
     
    // Ta_Fonction()
    {
      size_t taille=8;
      ARP_ENTRY_t s;
      s.ip = malloc(taille);
      ...
    }

  3. #3
    Membre éclairé Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Points : 862
    Points
    862
    Par défaut
    Le problème c'est que je ne sais pas comment faire une allocation de la taille de cette structure, sachant que la taille de la table ARP varie.
    Tu peux faire ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    size_t taille_arp = 5;
     
    //allocation dynamique de mémoire
    ARP_ENTRY_t *pArp = malloc(taille_arp * sizeof(ARP_ENTRY_t));
     
    //utiliser le tableau dynamque de structures ARP_ENTRY_t
    ...
     
    //Le libérer
    free(pArp); pArp = NULL;

  4. #4
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 72
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    Merci pour votre réponse je vais voir ce que cela donne.

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Points : 23
    Points
    23
    Par défaut
    Pour optimisation,

    tu peux peut-être coder les ip sur des unsigned char[4] (4octets), et les mac sur des unsigned char[6]

  6. #6
    Membre éclairé Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Points : 862
    Points
    862
    Par défaut
    Citation Envoyé par grouff Voir le message
    Pour optimisation,

    tu peux peut-être coder les ip sur des unsigned char[4] (4octets), et les mac sur des unsigned char[6]
    Oui, j'ai mis cela juste à titre d'exemple, sans me soucier du format choisi par le PO (chaine de caractères ou valeurs entières).

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/01/2012, 17h01
  2. Allocation dynamique d'un tableau de structure
    Par TheChicken dans le forum Débuter
    Réponses: 20
    Dernier message: 12/05/2011, 17h11
  3. Réponses: 67
    Dernier message: 13/02/2007, 18h08
  4. Réponses: 13
    Dernier message: 01/10/2006, 00h25
  5. [PRO*C] Allocation dynamique d'un tableau de VARCHAR
    Par NéalZheimer dans le forum Interfaces de programmation
    Réponses: 5
    Dernier message: 07/07/2006, 13h02

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