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 dynamiques

Zirkom
Zirkom
Niveau 8
01 mars 2014 à 23:07:18

Bonsoir à tous,
Dans mon cadre scolaire, je dois faire des tableaux de structures dynamiques en C, mais voilà, j'ai un problème. :(

En général, les pointeurs, tableaux et structures ne me posent pas de problèmes... sauf quand c'est combiné.
J'ignore un peu comment m'y prendre, j'essaie actuellement sur un petit code perso pour ne pas mettre la merde dans mon projet scolaire, mais je n'y arrive pas.

Voici le code source: http://pastebin.com/4fuCBaWi

A savoir que dans ma structure, nom et coordonnees sont des chaînes de caractères, tout le reste sont des int. (que je passerai probablement en unsigned char pour l'économie de mémoire).

Pourriez-vous m'indiquer la marche à suivre svp ?
Merci d'avance. :)

Link_2408
Link_2408
Niveau 6
02 mars 2014 à 11:36:41

Si tu veux par exemple mettre 9 planètes, tu dois faire :

Planetes * mesPlanetes;

mesPlanetes= (Planetes *) malloc(9*sizeof(Planetes));

t'es pas obligé de caster le malloc ^^.

Apres pour l'acces et le parcours à ces planetes tu fais comme pour un tableau.

mesPlantes[i] etc

Zirkom
Zirkom
Niveau 8
02 mars 2014 à 12:00:56

Merci Link, je vais tester ça après. :ok:

Pseudo supprimé
Pseudo supprimé 02 mars 2014 à 15:43:15

Mais alors mesPlanetes c'est un pointeur vers un coin de la mémoire qui contient des Planetes bout à bout ou un pointeur vers un coin de la mémoire qui contient des pointeurs vers des Planetes ?
Quelles quelles soient ces données sont mises bout à bout et le fait de faire [i] décale la case de la mémoire ?
Désolé si je me suis mal fait comprendre. :hap:

Zirkom
Zirkom
Niveau 8
02 mars 2014 à 16:24:12

Oui ManBoy, c'est comme une chaîne de caractère, mais pas sizeof(char) * nbr_car, mais sizeof(struct) qui peut avoir des chaines de caractères, des entiers etc.

Grand__Smurf
Grand__Smurf
Niveau 46
02 mars 2014 à 17:06:18

"t'es pas obligé de caster le malloc ^^."

=> http://stackoverflow.com/questions/605845/do-i-cast-the-result-of-malloc

Link_2408
Link_2408
Niveau 6
02 mars 2014 à 18:04:52

Perso je fais toujours un cast sur . Je trouve ça plus logique.
Après y en a qui le font, d'autres qui le font pas.
Enfin bref.

Grand__Smurf
Grand__Smurf
Niveau 46
02 mars 2014 à 19:01:59

Lis ce que j'ai link, c'est fortement déconseillé. J'ai vu récemment un type qui a eu un segfault à cause du cast et qui aurait vu tout de suite l'erreur s'il n'avait pas cast.

Link_2408
Link_2408
Niveau 6
03 mars 2014 à 00:36:24

Ah ok, j'avais pas compris.

Bizarre. Moi j'ai jamais eu ce problème.
D'ailleurs je ne vois pas en quoi le cast est mauvais, puisque de toute manière le compilateur fait le cast du malloc à la compilation à cause de la différence de type.

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