Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur de segmentation

texte->h (il n'aime pas :s)

Anonyme
    17 novembre 2007 à 20:15:07

    Bonjour, j'ai codé un p'tit jeu Snake en C++.
    J'ai codé ce jeu sous Debian (Sid), quand je le compile aucun problème. Mais j'ai voulu le mettre sur le PC "familial" (sous Ubuntu 7.10), et là, je compile, ça marche aussi, mais quand je le lance... Il me marque "Erreur de segmentation".
    J'ai essayé d'isoler le code qui donnait cette erreur, et il se trouve que c'est :
    1. texte->h;

    et
    1. texte->w;

    qui posent problème. J'ai bien créé la surface avant de faire texte->h et texte->w. Je ne comprend pas trop. Pourriez-vous m'éclairer sur ce problème svp... ? :honte:
    • Partager sur Facebook
    • Partager sur Twitter
      17 novembre 2007 à 20:23:10

      vérifie quand même que "texte" ne vaut pas NULL.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        17 novembre 2007 à 20:50:33

        En effet, texte est bien NULL. Je ne comprend pas, car je l'ai bien créé avant. Et quand je lance le programme sous Debian, ça marche...
        • Partager sur Facebook
        • Partager sur Twitter
          17 novembre 2007 à 20:51:54

          si tu veux de l'aide va falloir plus de code alors
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            17 novembre 2007 à 20:59:40

            Voilà mon code qui gère le texte

            1. TTF_Font *font;
            2. SDL_Surface *texte = NULL;
            3. SDL_Color couleur;
            4. SDL_Rect posTexte;
            5. string texte_string;    
            6. TTF_Init();  //Pour afficher du texte
            7. // Ouverture de la police pour afficher le score (taille 30)
            8. font = TTF_OpenFont("Disko.ttf", 30);
            9. if(!font)
            10. {
            11.    cerr << "Erreur lors du chargment de la police Disko.ttf" << endl;
            12.    exit(EXIT_FAILURE);
            13. }
            14. // Couleur noire
            15. couleur.r = 0;
            16. couleur.g = 0;
            17. couleur.b = 0;
            18. //On enregistre le texte à afficher puis on le met dans une variable SDL
            19. texte_string = "Vous etes mort !";
            20. texte = TTF_RenderText_Solid(font, texte_string.c_str(), couleur);
            21. //Pour que le texte "Vous etes mort" soit au milieu, et en bas de l'écran
            22. posTexte.x = ecran->h/2 - texte->h/2;
            23. posTexte.y = HAUTEUR_FENETRE - texte->h;


            EDIT :
            Quand je fais
            1. if(!TTF_Init() == -1);  //Pour afficher du texte
            2. cerr << TTF_GetError() << endl;


            ça me donne : Failed loading DPMSDisable: /usr/lib/libX11.so.6: undefined symbol: DPMSDisable

            C'est quoi DPMSDisable ?
            • Partager sur Facebook
            • Partager sur Twitter

            Erreur de segmentation

            × 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