Partage
  • Partager sur Facebook
  • Partager sur Twitter

Memory Corruption suite à un malloc

Dans un petit jeu en SDL

    10 juillet 2006 à 17:39:59

    Salut à tous !

    Je suis en train de coder un petit jeu que j'avais sur ma calculatrice, appelé Block Dude. Quelqu'un sur ce forum avait commencé à le recoder à sa façon, mais j'avais remarqué quelques bugs, et surtout une taille de map constante.

    Pour rappel, ce jeu est un genre de casse-tête, dans lequel le personnage se déplace dans une map contenant de multiples plateformes accessibles en empilant des caisses. Sur ces platesformes se trouvent d'autres caisses qui permettront finalement d'accéder à un point de sortie.

    J'ai totalement recommencé le projet depuis zéro pour pouvoir gérer des cartes de dimensions variables.

    Malheureusement, j'ai une erreur assez bizarre qui survient alors que je lance la partie :

    *** glibc detected *** malloc(): memory corruption: 0x08064470 ***


    Je suis sur un Ubuntu/Linux, ce message s'affiche dans mon terminal.

    J'ai fait une archive tarball (tar.gz) contenant les sources : c'est par ici.

    J'ai beau chercher avec gdb (débuggueur) où se trouve la panne, je ne comprends pas. D'autant plus que parfois, ça fonctionne, mais dans ce cas là, le sprite du mur qui devrait normalement s'afficher, est remplacé par le sprite de Mario o_O .

    Apparemment, d'après le message, c'est le malloc qui fait planter le tout. Je n'ai qu'un malloc, lors de la création de la carte (fonction chargerCarte() dans fichiers.c).

    La compilation se fait par : gcc -o marioblock *.c *.h -lSDL -lSDLmain -lSDL_image

    Est ce que quelqu'un y voit plus clair que moi ?
    Merci beaucoup d'avance !
    • Partager sur Facebook
    • Partager sur Twitter

    Memory Corruption suite à un malloc

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown