CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourHigh-Tech
    • Actus High-Tech
    • Hardware
    • Smartphones
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • High-Tech
  • 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
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C] Variable fantôme

[matbox]
[matbox]
Niveau 8
13 décembre 2009 à 20:08:33

Bonjour,
je suis actuellement en train de coder un programme de gestion de base de donnée en mode console et j'utilise notamment la fonction de base scanf pour remplir une de mes structures. Le problème est qu'il semblerait que l'ordre dans lequel je remplie ma structure via mes scanf soit important et je ne comprends pas pourquoi. Pour plus d'explication voici l'extrait du code en question :

http://www.dev-fr.org/Paste/jPnLVhh3ol.html

Alors ma question, ce peut-il qu'il existe un certain ordre de remplissage pour ma structure, peut-être cela vient t-il de mon compilateur (gcc) ?

Kaoron
Kaoron
Niveau 9
14 décembre 2009 à 10:35:40

scanf(" %s", adh.adhNom);

Un indice : il manque un truc !

Kaoron
Kaoron
Niveau 9
14 décembre 2009 à 10:36:15

Arf non, même pas, je ferais mieux de me taire quand je suis pas réveillé

Kaoron
Kaoron
Niveau 9
14 décembre 2009 à 11:08:01

Après café, c'est là qu'il manque un truc :
scanf(" %d", &adh.adhAge);

Faut lui tailler un short, sinon il donne des coups de pieds pour se faire une place dans la pile, et piétine ce qui vient juste derrière lui.

_skip
_skip
Niveau 10
14 décembre 2009 à 12:19:13

"Faut lui tailler un short, sinon il donne des coups de pieds pour se faire une place dans la pile, et piétine ce qui vient juste derrière lui. "

-> Ce qui contribue à l'énorme *bonheur* qu'est le codage de grandes applications en C, cela dit...

[matbox]
[matbox]
Niveau 8
14 décembre 2009 à 13:20:38

Merci beaucoup c'était effectivement ça le problème.

dnob700
dnob700
Niveau 10
14 décembre 2009 à 13:46:40

Mais je suis sûr que GCC donnait un warning sur cette instruction. et IL FAUT LIRE LES WARNINGS ! et les messages d'erreurs du compilateur. Ils donnent beaucoup d'information sur ce qui ne vas pas, sur ce qui pourrait ne pas aller, etc.

D'ailleurs, avec gcc, je recommande les options "-Wall -Wextra" qui permettent de détecter plein de problèmes en amont des bogues. La moitié des posts ici pourrait-être résolu par leur auteurs juste ne lisant les messages du compilo.

chris_27
chris_27
Niveau 10
14 décembre 2009 à 14:18:24

+1 à « je recommande les options "-Wall -Wextra" ». :oui:

Ikki_2504
Ikki_2504
Niveau 11
14 décembre 2009 à 22:53:22

Ca dépend de comment on code... Sous Linux avec gcc "fait main", oui on peut résoudra pas mal de problèmes, sous Windows avec Dev-C++ par défaut, bonjour les messages d'erreurs pas clairs :(

godrik
godrik
Niveau 30
14 décembre 2009 à 22:58:07

DevC++ c'est pas l'IDE/compilateur qui est obsolete depuis des annees ? Il donne des messages d'erreurs moisi ? Si oui, il faut juste change de compilateur. Un compilateur qui donne trop de faux positifs dans les warnings est completement inutile.

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