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 :

Tableaux dynamiques /gestion de bibliotheque en langage c


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 3
    Par défaut Tableaux dynamiques /gestion de bibliotheque en langage c
    Bonsoir tout le monde

    je suis debutante en C , en fait je voulais savoir comment on pourrait utiliser les tableaux dynamiques dans la gestion d'une bibliotheque en langage c (affichage ,remplissage ,tri ... )

    comment on pourrait ,remplir un tableau ?
    est ce que j'aurais besoin d'allouer d'abord de l'espace à cet tableau ?

    je n'y comprends rien dans les tableaux dynamiques quelqu'un aurait la gentillesse de m'eclaircir un peu j'en serais très reconnaissante

    merci d'avance

  2. #2
    Membre Expert Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Par défaut
    Salut,

    Un tableau est composé de n éléments de taille x. Comme tu le sais surement un char vaut 1 octet. Si tu veux un tableau de 20 char, il te faudra réserver 20 octets. L'allocation dynamique est utile quand tu veux préciser une taille lorsque le programme tourne, une taille que tu ne peux pas connaitre à l'avance.

    On alloue comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Pour un tableau d'entier
    int size;
    printf("Entrer la taille du tableau à allouer : ");
    scanf("%d", &size);
    int *mon_tableau = malloc(size * sizeof(int));
    L'opérateur sizeof te permet de connaitre la taille d'un élément, donc pour un "int" ça sera souvent 4 octets, à la limite tu pourrais remplacer sizeof(int) par 4.

    Pour passer un tableau en paramètre d'une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    void remplissage(int* t, int n)
    {
      int i;
      for(i = 0; i < n; ++i)
      {
         printf("Veuillez entrer le nombre %d : ", i+1);
         int tmp;
         scanf("%d", &tmp);
         t[i] = tmp;
      }
    }
     
    int main()
    {
      int size;
      printf("Entrer la taille du tableau à allouer : ");
      scanf("%d", &size);
      int *mon_tableau = malloc(size * sizeof(int));
      remplissage(mon_tableau, size);
    }
    Avec ces exemples tu devrais pouvoir t'en sortir.

  3. #3
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Bonjour.

    Histoire d'ajouter une information à l'explication de Trademark, un tableau dynamique est capable, au cours de l'exécution du programme, de changer de taille.

    Pour avoir cette possibilité il faut nécessairement que le tableau soit créé par une allocation mémoire comme te l'a montré Trademark. Ensuite il te suffit d'utiliser la fonction realloc(); pour en faire varier sa taille.

    Pour reprendre le fil de ta demande, il existe d'autres formes pour stocker des informations dont tu ne connais pas à l'avance le nombre. En voila deux des plus courantes :
    • liste chainée,
    • table de Hash

    Chacune de ces méthodes a des avantages et des inconvénients. Mais elles sont couramment utilisées.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Une bonne base est la FAQ : allocation dynamique

Discussions similaires

  1. Tableaux dynamiques, fonctions, et gestion mémoire
    Par Hobbèse dans le forum Débuter
    Réponses: 7
    Dernier message: 02/02/2014, 16h20
  2. [Langage] Probleme avec les tableaux dynamiques
    Par wawa84 dans le forum Langage
    Réponses: 7
    Dernier message: 19/11/2008, 17h18
  3. [D7] Tableaux dynamiques dans un record
    Par bobby-b dans le forum Langage
    Réponses: 2
    Dernier message: 30/06/2004, 23h23
  4. Article sur les tableaux dynamiques
    Par Eric Sigoillot dans le forum Langage
    Réponses: 2
    Dernier message: 16/04/2004, 22h00
  5. [Kylix] Tableaux dynamiques sour Kylix2
    Par Krän dans le forum EDI
    Réponses: 6
    Dernier message: 07/10/2003, 14h31

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