CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : [C] Tableau de structures ou tableau de pointeurs sur des structures ?

DébutPage précedente
1
Page suivantePage suivante
FoetusSchizo FoetusSchizo
MP
Niveau 7
16 janvier 2017 à 20:35:01

Bonsoir.

Tout d'abord, ma première question (je débute en C) :
Pourquoi préférer un tableau de pointeurs sur des éléments à un tableau de ces éléments ?
Mon prof nous a parlé d'un souci de performances lorsqu'on manipule les entrées du tableau, etc. Vous pouvez m'en dire plus ?

J'ai un projet à réaliser et du coup, j'aimerais savoir s'il est plus judicieux de réaliser un tableau de pointeurs sur des structures ou de simplement faire un tableau de structures.

Merci !

LEpigeon-888 LEpigeon-888
MP
Niveau 10
17 janvier 2017 à 07:07:57

Donc si t'as des pointeurs, t'as des petits éléments et c'est très simple de passer de l'un à l'autre, tes structures étant ailleurs.

Je pense pas que la taille des éléments importe là dessus, au final pour passer d'un élément à l'autre c'est juste une histoire d'addition, faire +1 ou +100 impacte pas les performances je pense.

Si t'as des structures, elles sont toutes à la suite dans ton tableau, donc ça fait un gros objet très lourd à manipuler, et moins pratique.

Quand tu manipule un tableau tu manipule l'adresse du 1er élément, donc la taille a pas trop d'importance je pense.

Par contre effectivement si tu dois modifier ton tableau (donc en recréer un nouveau et copier en partie les anciennes valeurs) ça sera plus simple de copier X pointeurs que de copier X structures (moins de valeurs à copier, puis ça prendra moins de place en RAM le temps de la copie).

Message édité le 17 janvier 2017 à 07:11:41 par LEpigeon-888
FoetusSchizo FoetusSchizo
MP
Niveau 7
17 janvier 2017 à 07:51:31

Merci pour vos réponses, ça confirme un peu ce que je pensais.
En fait j'avais un souci quand j'essayais de créer un tableau dynamique de pointeurs sur des structures, et un ami m'a dit qu'une structure était déjà un pointeur donc que ça ne servait à rien de faire un tableau de pointeurs sur des structures. C'est vrai ça ?

Mon projet c'est la gestion d'une ludothèque : je vais avoir des fichiers de données du type :
1 DUPONT Jean jean.dupont@gmail.com 01/01/2017 2 DUBOIS Marc marc.dubois@gmail.com 12/10/2016 ...
pour des adhérents, pareil pour des jeux, etc... Et je dois être capable de lire ces fichiers, pour les traiter (ajouter/modifier/supprimer des adhérents, des jeux, voir s'ils doivent renouveler leur inscription (valable 1 an). Pour ensuite tout sauvegarder dans ces mêmes fichiers.

Quelles sont les méthodes les plus judicieuses ?

Et oui j'ai appris les listes chaînées, j'en ai d'ailleurs fait une pour les jeux.

LEpigeon-888 LEpigeon-888
MP
Niveau 10
17 janvier 2017 à 08:03:22

un ami m'a dit qu'une structure était déjà un pointeur donc que ça ne servait à rien de faire un tableau de pointeurs sur des structures. C'est vrai ça ?

Non.

FoetusSchizo FoetusSchizo
MP
Niveau 7
17 janvier 2017 à 08:06:51

Le 17 janvier 2017 à 08:03:22 LEpigeon-888 a écrit :

Non.

Ah, d'accord ! Ça va un peu plus dans le sens de ce que nous disait le prof... Du coup maintenant j'aimerais bien savoir comment utiliser les bons outils pour réaliser mon projet (tableaux de pointeurs sur des structures, listes, ... ?)

godrik godrik
MP
Niveau 22
17 janvier 2017 à 08:15:04

oui il y a des differences de performances. La difference depend de ce que tu veux faire avec tes donnes. Tu as des differences de cache en fonction de ce que tu fais. Il y a aussi des difference en terme de vectorizatin.

lis sur le sujet "array of structures or structure of arrays", des fois appelle AoS or SoA.

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : godrik, LGV
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment