[langage C] probleme de pointeurs..

Fermé
katia_forth Messages postés 2 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 7 juin 2007 - 7 juin 2007 à 16:32
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 7 juin 2007 à 17:01
Bonjour,
J'ai une erreur dans mon code

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
*xx = event.button.x;
, 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.
A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
7 juin 2007 à 16:50
Salut

Pourrais-tu nous donner le message d'erreur ? Problème lors de la compilation ou de l'exécution ?

Merci d'avance
0
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
7 juin 2007 à 17:01
Peux tu nous donner le code complet (minimal) mettant en évidence le problème. Dans un premier jet tu peux compiler avec -g et utiliser gdb pour voir ou ca plante :
gcc -W -Wall -g plop.c
gdb a.out

Dans gdb
r
bt

Tu auras la pile d'exécution et grâce à l'option -g le numéro de ligne où ça plante.

Bonne chance
0