Menu

Allocation dynamique de structur

Messages postés
1
Date d'inscription
dimanche 31 mars 2019
Statut
Membre
Dernière intervention
31 mars 2019
- - Dernière réponse : [Dal]
Messages postés
5131
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
18 juin 2019
- 1 avril 2019 à 13:03
Bonjour ,
, je veut faire une fonction qui parcourt un tableau de fiches et les affiche , puis tester cette fonction
avec un tableau statique rempli manuellement. (j'ai deja fais une fonction qui affiche et initialiser une fiche ) quelqun peut m'aider ?
Afficher la suite 

1 réponse

Messages postés
5131
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
18 juin 2019
777
0
Merci
Salut tekcimo,

Quel est ton problème ?

Voilà quelques indications.

En C, lorsque tu passes à une fonction le nom d'un tableau, tu passes en réalité un pointeur sur le premier éléments de ce tableau. La fonction, elle-même, devra aussi savoir quel est le nombre d'éléments de ce tableau.

Donc, le prototype pourrait ressembler à cela :
void afficher_fiches(struct fiche * f, size_t nb);
ce qui permettrait, à l'intérieur de la fonction, d'accéder au membre nommé "identifiant" contenu dans la troisième fiche du tableau, par exemple, en faisant
f[2].identifiant
.

En utilisant l'opérateur crochets, le C permet d'accéder aux éléments placés consécutivement dans la mémoire, car il est en mesure de déterminer la taille de chaque élément de type
struct fiche
et il peut donc calculer le déplacement nécessaire par rapport à l'adresse du premier élément, pour accéder au nème.

Dal
[Dal]
Messages postés
5131
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
18 juin 2019
777 -
Sinon, ton titre "Allocation dynamique de structur" n'a rien à voir avec ce que tu indiques dans ton post, puisque tu dis que tu vas utiliser un "tableau statique rempli manuellement"... à moins que tu testes avec un tableau statique quelque chose qui serait, dans la réalité, alloué dynamiquement.

Quoi qu'il en soit, cela ne changerait rien à la fonction elle-même, qui accéderait de la même façon à la zone mémoire contenant les éléments
struct
les uns à la suite des autres.
Commenter la réponse de [Dal]