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 :

probleme de pointeurs..


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut probleme de pointeurs..
    Bonjour,
    J'ai une erreur dans mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    void CoordClick(int *xx, int *yy)
    {  int go=1;
        SDL_Event event;
        event.button.x=0;
        event.button.y=0;
     
        while(go)
        {
            SDL_WaitEvent(&event);
            if(event.type==SDL_MOUSEBUTTONUP)
                {
                      *xx = event.button.x;
                      *yy = event.button.y;
                       go=0;
                }
        }
    }
     
    int main(int argc, char *argv[])
    {
        int *xx=NULL;
        int *yy=NULL;    
     
        SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
     
        SDL_Surface *ecran = NULL;
        ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
     
        SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 17, 206, 112));
        SDL_Flip(ecran); 
     
        CoordClick(xx,yy);
        printf("x = %d y = %d",*xx,*yy);
     
        SDL_Quit(); 
     
        return EXIT_SUCCESS;
    }
    et il y a un probleme a la ligne , qui fait buguer tout le programme.
    L'affectation ne doit pas marcher, pourtant il me semble bien respecter les types et les regles des pointeurs.

    Quelqu'un saurait-il m'aider ?
    Merci beaucoup.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Dans ton main tu déclares des pointeurs..

    Qui de plus sont initialisés à NULL..

    Ces pointeurs ne SONT PAS des entiers... mais des adresses potentielles.

    Or nulle part tu leur affectes une valeur , un espace de stockage correspondant...

    Il te faut relire ton cours sur les pointeurs......

  3. #3
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par défaut
    je te conseillerais en plus de créer une strucuture "coordonne" avec x et y plutot que de te trimballer 2 variables

  4. #4
    Membre averti
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut
    Oui je vais essayer avec une structure. Du coup, je n'ai plus besoin d'avoir de pointeurs, mais je peux utiliser un return dans ma fonction. Merci

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    mais pour ton instruction, voici ce que tu aurais dû faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    int main(int argc, char *argv[])
    {
        int xx=0;
        int yy=0;    
     
     ...
     
        CoordClick(&xx,&yy);
        printf("x = %d y = %d",xx,yy);
    .....
    }
    Comme je le disais, tu as déclaré des POINTEURS, pas des variables. Donc là je déclare des VARIABLES.

    Ensuite, tu passes l'adresse de ces variables, puisqu'elle vont être modifiées dans ta fonction.

    Ta fonction était correcte.

    Enfin tu imprimes la VARIABLE..

  6. #6
    Membre averti
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut
    Ok, merci beaucoup, bien sur avec les explications je comprends mon erreur... Merci encore.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme de pointeur ....
    Par berg dans le forum C
    Réponses: 6
    Dernier message: 12/01/2006, 22h46
  2. Probleme de pointeur
    Par Naruto_kun dans le forum C
    Réponses: 17
    Dernier message: 14/12/2005, 20h47
  3. Probleme de pointeurs
    Par mickyoun dans le forum C++
    Réponses: 9
    Dernier message: 10/08/2004, 17h15
  4. Probleme de pointeur sur une fonction
    Par nicky78 dans le forum C
    Réponses: 2
    Dernier message: 23/05/2004, 20h26
  5. probleme avec pointeurs de structures
    Par remi77 dans le forum C
    Réponses: 2
    Dernier message: 20/10/2003, 13h19

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