CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • 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 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

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

FoetusSchizo
FoetusSchizo
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
Niveau 12
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
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
Niveau 12
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
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
Niveau 30
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.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment