IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Chargement d'une image dans une fonction


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Par défaut Chargement d'une image dans une fonction
    Bonjour à tous,
    Je suis entrain de faire un ptit programme (pourri qui sert à rien ^^) pour m'entrainer en C et en SDL. J'ai un petit problème pour charger une image.

    Donc j'ai une première fonction ajouter_objet, dans lequel j'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // [...]
            SDL_Surface *fond = NULL;
    // [...]
            choisir_fond( fond );
            if( fond == NULL )
                printf("Le choix du fond a échoué\n");
    // [...]
    Cette fonction fait donc appel à la fonction choisir_fond qui, elle, contient ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void choisir_fond( SDL_Surface *fond )
    {
        fond = IMG_Load("fonds/herbe.png");
        if( fond == NULL )
            printf("Le choix du fond dans la fonction choisir_fond a échoué\n");
        else
            printf("Le choix du fond dans la fonction choisir_fond est un succès\n");
    }
    Quand je vais voir dans mon fichier stdout.txt, je vois que le fond dans choisir_fond n'est pas égal à NULL, mais dans la fonction ajouter_objet, il est NULL.

    Voilà, vous sauriez me dire ce que j'ai mal fait svp ?
    Merci.

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Les arguments des fonctions sont toujours des valeurs. choisir_fond ne peut pas modifier la variable fond de la fonction ajouter_objet.
    Pour qu'une fonction puisse modifier une valeur dans le programme appelant, il faut
    - soit utiliser la valeur de retour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    fond = choisir_fond( );
    ...
    SDL_Surface * choisir_fond(void)
    {
     SDL_Surface * fond = IMG_Load("fonds/herbe.png");
    if( fond == NULL )
    printf("Le choix du fond dans la fonction choisir_fond a échoué\n");
    else
    printf("Le choix du fond dans la fonction choisir_fond est un succès\n");
    return fond;
    }
    - soit passer l'adresse où la valeur doit être placée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    fond = choisir_fond(&fond );
    ...
    void choisir_fond( SDL_Surface * * pfond)
    {
     * pfond = IMG_Load("fonds/herbe.png");
    if( *pfond == NULL )
    printf("Le choix du fond dans la fonction choisir_fond a échoué\n");
    else
    printf("Le choix du fond dans la fonction choisir_fond est un succès\n");
    }

Discussions similaires

  1. [Débutant] Manipulation d'images : intégrer une image dans une image
    Par noscollections dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/10/2014, 11h51
  2. Une image dans une image (image map?)
    Par oklama dans le forum Langage
    Réponses: 3
    Dernier message: 24/01/2007, 14h13
  3. Mettre une Image dans une Image
    Par shadowhocine dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 19/12/2006, 18h40
  4. Réponses: 3
    Dernier message: 30/10/2006, 11h21
  5. Insérer une légende dans une image avec une police plus petite
    Par Paulinho dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 3
    Dernier message: 29/04/2006, 14h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo