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

Segfault...

Paulop
Paulop
Niveau 12
28 mars 2012 à 17:48:59

Bon pour commencer tu as un défaut de conception, tu ne devrais pas avoir une boucle while(run) dans une boucle while(run).

Tu peux implémenter qqchose comme ça : http://mygameisrich.com/2011/02/05/game-states-stack-comment-gerer-simplement-les-etats-dun-jeu-video/

Sinon ça m'a l'air d'être une fuite mémoire je vais compiler et regarder.

Paulop
Paulop
Niveau 12
28 mars 2012 à 17:54:19

http://stackoverflow.com/questions/413477/is-there-a-good-valgrind-substitute-for-windows

Pour des substituts de Valgrind.

TheLittleRobear
TheLittleRobear
Niveau 10
28 mars 2012 à 17:56:51

Paulop j'ai trouvé ce site, mais ce sont des versions PAYANTES. Et pas moyen de les trouver illégalement :ouch:

Je vais lire ton lien (même si je vois pas le problème)

TheLittleRobear
TheLittleRobear
Niveau 10
28 mars 2012 à 18:01:39

Je vois pas trop ce que je dois implanter à la place des mes deux boucles de while(run) :( Pourquoi je peux pas faire ça ?

Paulop
Paulop
Niveau 12
28 mars 2012 à 18:10:43

J'ai pas de Segfault chez moi.

Sinon, non descend un peu plus, tu as plein de versions gratuites.

Pour ton code, tu as du code redondant qui fait exactement là même chose, sauf qu'ils sont imbriqués, tu pourrais te retrouver avec des problèmes avec ce genre de code.

Mjonir
Mjonir
Niveau 26
28 mars 2012 à 18:10:43

TheLittleRobear -> Le lien de Paulop propose de nombreux utilitaires gratuits, en dessous.

Je te conseilles de toute façon d'installer un Linux en dual-boot (plusieurs techniques, fais une recherche sur "Wubi") ou en machine virtuelle. C'est pas bien compliqué et ça vaut la peine pour ce genre de cas :)

TheLittleRobear
TheLittleRobear
Niveau 10
28 mars 2012 à 18:11:06

Le segfault est lié à "void GenerateHole(TabOfMap tab[iTab][jTab])". En enlevant cette fonction je n'en avais plus :o))

Paulop
Paulop
Niveau 12
28 mars 2012 à 18:15:33

Ah oui je l'ai, ce n'est pas en fermant ^^ Je regarde.

TheLittleRobear
TheLittleRobear
Niveau 10
28 mars 2012 à 18:17:16

Ah oui, où est-ce que j'ai des redondances ? :question:

Sinon :

Dans la fonction GenerateHole, plus j'ajoute de : CreateRandomHole(tab); (j'en crée 10 au lieu de 1 à chaque fois), plus le segfault arrive vite !

Paulop
Paulop
Niveau 12
28 mars 2012 à 18:26:25

Ouais en fait c'est simple tu débordes du tableau, ton tableau fait 32*18 et tu accède parfois à la case [32] [18]

TheLittleRobear
TheLittleRobear
Niveau 10
28 mars 2012 à 18:28:25

Ah mais oui OMG :honte: Putain de merde...

J'avais pensé à ça la première fois que j'avais mis mes "rand", j'avais bien fait attention de mettre "iTab-1" par exemple, et la j'ai oublié !

Allez, ça fait que la 5eme fois que je perd 5-6h de prog' à cause d'une erreur bête :noel:

Bon je vais compiler ça, et si ça marche je t'aime :hap:

tbop2
tbop2
Niveau 10
28 mars 2012 à 18:33:48

Excellent ton lien sur les Game States, je le ressortirai plus souvent maintenant au lieu de toujours donner un lien vers un ancien de mes posts sur ce forum ou j'expliquais ca brievement et sans dessin ni code !

TheLittleRobear: c'est toujours dans 99% des cas une erreur bete.... Le probleme c'est de savoir ou elle est, c'est ca qui est chronophage, d'ou l'interet d'avoir un code factore, comprehensible et bien structure pour assurer la maintenance, le debuggage et la comprehension d'ensemble de maniere lego-iste.

TheLittleRobear
TheLittleRobear
Niveau 10
28 mars 2012 à 18:36:41

Ben mon code n'est pas trop bordelique non ?? C'est mon deuxième jeu de + de 1000lignes (deuxième projet tout court), le premier était 10x pire !

Ce genre d'erreur est plus facilement visible par autrui je pense :oui: Comme une fois, j'avais un segfault à cause d'une boucle infini "tab[i][i]" au lieu de [i][j]... :hap:

Sinon :merci:

Vous avez des critiques à faire pour le code ? J'ai pas trop compris l'histoire du while(run) aussi

TheLittleRobear
TheLittleRobear
Niveau 10
28 mars 2012 à 19:00:56

i = (rand() % ((iTab-1) - 0 + 1)) + 0;
j = (rand() % ((jTab-1) - 0 + 1)) + 0;

C'est pas juste ? Le segfault est toujours là :snif2:

TheLittleRobear
TheLittleRobear
Niveau 10
28 mars 2012 à 19:02:46

Non j'ai rien dis, c'est moi qui vient de le créer, donc c'est bon j'en est plus :hap:

godrik
godrik
Niveau 30
28 mars 2012 à 19:05:37

Personnellement je programme defensif. Je met des assertions dans mon code partout ou ca semble approprie pour verifier les depassement de tableau ou totu simplement la coherence de l'algorithme.

Entre ca et valgrind, je n'ai pas beaucoup de bug qui me passe vraiment au dessus de la tete.

Paulop
Paulop
Niveau 12
28 mars 2012 à 19:32:11

TheLittleRobear >> Non franchement ton code dans l'ensemble n'est pas horrible, si on veut être pointilleux on pourrait dire des choses mais sinon je n'ai pas eu de mal à te comprendre donc ça va :-)))

tbop2 >> Ben merci, sachant que c'est moi qui l'ait écrit ^^

TheLittleRobear
TheLittleRobear
Niveau 10
28 mars 2012 à 20:01:53

Ok cool :hap:

Sinon pour l'histoire du while(run) ? :fou:

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