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] "Erreur de segmentation (core dumped) " ??

Patamaudelay
Patamaudelay
Niveau 10
11 novembre 2017 à 12:42:12

Yo, je suis en train de programmer un jeu du pendu pour m'entrainer sur les chaines de caractère mais au moment de compiler j'ai ce message d'erreur : Erreur de segmentation (core dumped) dans mon terminal linux https://image.noelshack.com/fichiers/2016/36/1473263957-risitas33.png

Le début du programme marche bien , il me demande quel mot je veux faire deviner, en combien de coups , puis il affiche bien " voici votre mot a deviner : ---- en 5 vies " par exemple. Mais au moment ou je rentre une lettre j'ai le message d’erreur qui s'affiche. J'arrive vraiment pas a voir d'ou ça vient donc j'ai besoin d'aide s'il vous plait https://image.noelshack.com/fichiers/2016/39/1475401891-valls2.gif

Voici mon code :
https://gyazo.com/8049ae1f06fe8b9cf922ac9594ef65e9 mon fichier pendu.c
https://gyazo.com/cfef633afbcd2bc8326adbe8e878a6fe mon fichier pendu.h
https://gyazo.com/584a93096b5af13173de7d58c6c50e75 fichier pendutest.c

Et ma commande pour compiler : gcc *.c -o JeuPendu

Voila merci les gars [[sticker:p/1lmk]]

sentrance
sentrance
Niveau 10
11 novembre 2017 à 14:54:22

Erreur de segmentation ça veux dire que tu tente d'accéder à une zone mémoire qui ne t'es pas réservé. Par exemple si tu as un tableau de 8 et que tu tentes d'accéder à la 9ème case ;)

Ici, tu n'as pas initialiser tes valeurs de i dans "placer" et "initialiser". Du coup quels sont leurs valeurs? La réponse est: ça dépend. Et donc tu lis/écris trop loin dans ton tableau.

Edit: tu initialise i dans ton "for" d'un côté et de l'autre tu utilises un while. La convention est de créer ta variable i dans ton "for" -> for (int i = 0; i < x; i++) ou alors de faire une variable int i = 0; puis un while.

Message édité le 11 novembre 2017 à 14:55:52 par sentrance
tharsisco
tharsisco
Niveau 10
11 novembre 2017 à 18:54:08

À noter que for (int i = 0; i < x; i++) ne marchera pas en C si standard inférieur à 1999 (Option -std=c99 au moment de compiler) et il faudra bien déclarer la variable avant.

Message édité le 11 novembre 2017 à 18:54:23 par tharsisco
JeRespireLeVent
JeRespireLeVent
Niveau 10
11 novembre 2017 à 20:45:18

[14:54:22] <Sentrance>

Edit: tu initialise i dans ton "for" d'un côté et de l'autre tu utilises un while. La convention est de créer ta variable i dans ton "for" -> for (int i = 0; i < x; i++) ou alors de faire une variable int i = 0; puis un while.

Heu... Les règles de code standard te dirait de créer tes variables au debut de chaque fonction (ou en haut de ton fichier source si c'est une variable static)

aAardvark
aAardvark
Niveau 75
11 novembre 2017 à 21:58:50

Il a probablement confondu avec le C++ (ou avec la convention énoncée ci-dessus) :hap:

godrik
godrik
Niveau 30
11 novembre 2017 à 23:50:10

En meme temps il y a assez peu de raison d'ecrire en vieux C.

sentrance
sentrance
Niveau 10
13 novembre 2017 à 14:33:31

Le 11 novembre 2017 à 21:58:50 aAardvark a écrit :
Il a probablement confondu avec le C++ (ou avec la convention énoncée ci-dessus) :hap:

Non non, c'est juste que quitte à utiliser une variable dans une seule boucle autant la déclarer dans le for pour que le code soit plus "lisible".

Le coup de la déclaration en début de fonction si vous lisez du code C récent très peu de gens suivent cette norme pour les itérateurs pour des soucis de lisibilité.

EDIT: je ne dénigre pas les coding style enseigné dans les différents établissement (et qui est également bien et a pour avantage d'être compatible avec tous les standards de C).

Message édité le 13 novembre 2017 à 14:38:27 par sentrance
Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment