Partage
  • Partager sur Facebook
  • Partager sur Twitter

Vector SDL_Rect [SDL1]

Problème avec le push_back

    11 avril 2019 à 14:11:22

    Bonjour, 

    J'ai récemment commencé à faire un Snake, et dans celui-ci, j'utilise un vector de SDL_Rect. Quand j'utilise le debugger, il est signaler qu'il y a un problème avec le push_back. Je débute donc si vous pouviez m'aider.

    Voici la déclaration:

    SDL_Rect m_posSnake;
    std::vector<SDL_Rect> m_posSnakeQueue;

    Et ici, l'endroit où le debugger me signale un problème:

    m_posSnakeQueue.push_back(m_posSnake);

    J'espère que vous pourrez m'aider, si vous avez besoin de plus de code, demandez.

    Merci d'avance.

    • Partager sur Facebook
    • Partager sur Twitter
      11 avril 2019 à 14:13:31

      Il te signale quoi comme problème ? Parce que ça semble correct.
      • Partager sur Facebook
      • Partager sur Twitter
        11 avril 2019 à 14:20:33

        Il n'y a aucun problème à la compilation, seulement le debugger fait arrêter le programme en signalant ces lignes.

        Je ne sais pas s'il y a un moyen de voir un quelconque message d'erreur, je suis débutant, je travaille avec code::block.

        • Partager sur Facebook
        • Partager sur Twitter
          11 avril 2019 à 14:31:55

          Tu as mis un breakpoint ? Il te signale Segfault ? C'est quoi ton IDE ?
          • Partager sur Facebook
          • Partager sur Twitter
            11 avril 2019 à 14:44:02

            Je suis avec Code::Blocks, et je ne suis pas sûr de savoir comment marche un breakpoint, je vais tout de suite me renseigner.

            Je ne crois pas que le debugger me signale Segfault, non.

            • Partager sur Facebook
            • Partager sur Twitter
              11 avril 2019 à 14:50:39

              Oui, il nous faudrait l'erreur, ou à défaut une capture d'écran de ce que tu appelles "me signale un problème". Si cela se trouve, tu as juste placé un breakpoint au niveau du push_back et tu penses qu'il s'agit d'une erreur alors qu'il s'agit juste de là où le programme est "mis en pause" en attendant une action de ta part.

              -
              Edité par Didy7 11 avril 2019 à 14:51:11

              • Partager sur Facebook
              • Partager sur Twitter
                11 avril 2019 à 15:04:14

                J'ai regardé pour le breakpoint, et non, il n'y en a pas. Le debugger me donne l'adresse de cette ligne, et des endroits qui font appelle la fonction dans laquelle la ligne se trouve. J'aurait aimer vous donner une capture d'écran, mais je ne sais honnêtement pas quoi vous donnez. J'ai à peu près tout dit.

                En plus de l'adresse des lignes de mon code, il m'envoie celle de "new_allocator.h", "alloc-traits.h", "stl.vector.h", "vector.tcc" et de "stl_vector.h" encore une fois.

                • Partager sur Facebook
                • Partager sur Twitter
                  11 avril 2019 à 15:06:26

                  Met une capture d'écran de code blocks quand même. Si tu ne run pas ton programme avec le débugger, il marche ?

                  -
                  Edité par Maluna34 11 avril 2019 à 15:07:12

                  • Partager sur Facebook
                  • Partager sur Twitter
                    11 avril 2019 à 15:21:06

                    J'ai un léger problème technique, je vous donnerez la capture d'écran un peu après, mais sinon oui, le programme marche si on ne le lance pas avec le debugger. Seuleument, Je crois que j'ai un autre problème avec un destructeur d'une classe, ce qui ferai planté le programme de temps en temps. Mais cette partie de code marche très bien quand je le lance sans le debugger.

                    -
                    Edité par Jean-Lucien 11 avril 2019 à 18:08:09

                    • Partager sur Facebook
                    • Partager sur Twitter
                      11 avril 2019 à 18:57:57

                      C'est le compilateur ou vraiment le debugger qui t'envoie l'erreur ? (pour être sûr).
                      • Partager sur Facebook
                      • Partager sur Twitter
                        11 avril 2019 à 20:44:37

                        Aucune erreur à la compilation, juste le debugger qui m'envoie l'erreur.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          11 avril 2019 à 21:01:00

                          Met nous davantage de code + l'erreur exacte que te renvoie ton debuggueur.
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                            11 avril 2019 à 21:50:49

                            Que voulez-vous comme code, je ne saurais pas quoi vous donner en plus, j'ai fait des test, et il semblerait que ce soit ces lignes qui posent problème.

                            Et comment voir l'erreur que m'envoie le debugger? Je lance le programme, et au moment de faire cette lignes, le tout s'arrête, et le debugger me donne ces ligne.

                            • Partager sur Facebook
                            • Partager sur Twitter
                              11 avril 2019 à 22:01:01

                              Met nous un screenshot !
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                                11 avril 2019 à 22:15:23

                                Voici le lien NoelShack de la capture d'écran, l'outil sur le site n'a pas l'air de fonctionné chez moi:

                                https://image.noelshack.com/fichiers/2019/15/4/1555013676-snakeprobleme.png

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  11 avril 2019 à 22:18:08

                                  Fait un watch sur this pour voir.
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

                                    11 avril 2019 à 22:26:39

                                    C'est-à-dire? Je ne m'y connais pas encore tellement.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      12 avril 2019 à 9:24:28

                                      Salut,

                                      Est-tu sûr que ton vector 'm_posSnakeQueue' est initialisé ? Et l'objet que tu lui donnes dans ton push_back ?

                                      Ce qu'il se passe, à mon avis, c'est que tu essaie d'appeller push_back sur un vector qui n'est pas initialisé.

                                      Tu serais d'accord de nous montrer ta classe snakePlayer en entier ?

                                      -
                                      Edité par Raynobrak 12 avril 2019 à 9:25:16

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        12 avril 2019 à 12:41:38

                                        Qu'entendez-vous par initialiser? Car je peux vous montrez ma fonction d'initialisation, peut-être que l'erreur vient de là en effet, peut-être ai-je mal fait quelque chose:

                                        void snakePlayer::snakeInit(SDL_Surface* screen)
                                        {
                                            m_posSnake.x = screen->w / 2;
                                            m_posSnake.y = screen->h / 2;
                                            m_snakeTexture = IMG_Load("tuile/serpentPart1.png");
                                            longeurSnake = 1;
                                            vitesseSnake = 40;
                                            for (int woo(0); woo<longeurSnake; woo++)
                                            {
                                                m_snakeQueue = IMG_Load("tuile/serpentPart1.png");
                                                m_posSnakeQueue.push_back(m_posSnake);
                                            }
                                            m_scoreSnake = 0;
                                            m_invulnerabilite = 0;
                                        }

                                        Cette fonction est appelé au début du programme, le pire, c'est qu'ici, le push_back se fait normalement.

                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Vector SDL_Rect [SDL1]

                                        × 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