Partage
  • Partager sur Facebook
  • Partager sur Twitter

SDL_Surface* et cast

Warnings...

Anonyme
    14 juin 2006 à 12:06:35

    Bonjour bonjour :)

    J'ai un problème avec un programme SDL. Il y a une fonction de type SDL_Surface*. J'ai le code suivant, dans une autre fonction :
    SDL_Surface *image = NULL;

    ...

    image = loadImage("images/image.jpg");

    (loadImage est le nom de ma fonction de type SDL_Surface*)

    Lorsque je compile, on me dit : "warning : assignment makes pointer from integer without a cast". Bon, ce n'est qu'un warning, mais j'aimerais bien savoir ce qui ne va pas. J'ai été obligé d'écrire à la place :
    SDL_Surface *image = NULL;

    ...

    image = (SDL_Surface*)loadImage("images/image.jpg");


    Comment ça se fait ? :o

    Merci ;)
    • Partager sur Facebook
    • Partager sur Twitter
      14 juin 2006 à 15:18:43

      met ton code en entier parce que là, vraiment, on pourra pas jouer au débogueur...
      vérifie que tu essaie de mettre lebon type dedonnée dans ta variable (un contenu au lieu d'une adresse ou une adresse au lieu d'un contenu
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        14 juin 2006 à 18:17:07

        SDL_Surface *loadImage(char nomFichier[])
        {
            SDL_Surface *loadedImage = NULL, *optimizedImage = NULL;

            loadedImage = IMG_Load(nomFichier);
              // si pas de problème :
            if(loadedImage != NULL)
            {
                // on optimise
                optimizedImage = SDL_DisplayFormat(loadedImage);
                SDL_FreeSurface(loadedImage);
            }

            return optimizedImage;
        }


        void ecranAccueil(SDL_Surface *ecran, int lang)
        {
            SDL_Surface *image = NULL, *key = NULL;
           
            if(lang==FR)   key = (SDL_Surface*)loadImage("sprites/keyfr.png");
            else    key = (SDL_Surface*)loadImage("sprites/keyen.png");

            // la suite n'est pas importante
        }


        Comme vous le voyez, j'ai été obligé d'appliquer un cast pour que ça marche. Ce que j'aimerais savoir, c'est pourquoi il faut un cast, alors que les types semblent correspondre.
        • Partager sur Facebook
        • Partager sur Twitter
          14 juin 2006 à 19:12:34

          Tu as oublié de préciser le prototype de ta fonction avant de t'en servir, c'est la seule solution possible.
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            15 juin 2006 à 22:13:12

            Eh non ! Même le prototype est bon :

            SDL_Surface* loadImage(char nomFichier[]);


            Je n'y comprends pas grand chose o_O
            • Partager sur Facebook
            • Partager sur Twitter

            SDL_Surface* et cast

            × 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