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

GTK+ avec C & C++ Discussion :

Incrémentation d'un élément de structure : erreur de segmentation


Sujet :

GTK+ avec C & C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Par défaut Incrémentation d'un élément de structure : erreur de segmentation
    Bonjour à tous,


    Je suis actuellement en train de développer une application en GTK+ et je rencontre un léger soucis.

    Je souhaite, à chaque clic sur un bouton, qu'un entier ( compteur ) contenu dans une structure que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    typedef struct {
     
      const gchar *depart;
      const gchar *arrive;
      int compteur;
     
    } DataFav ;
    soit incrémenté de 1.

    Le code est simple et est le suivant :

    Initialisation et appel de la fonction dans le main:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    DataFav *dataFav;
    dataFav=malloc(sizeof(DataFav));
     
    dataFav->compteur=0;
     
    g_signal_connect(G_OBJECT(pFavorisBouton), "clicked", G_CALLBACK(favoris),dataFav);

    fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void favoris(DataFav *dataFav){
     
    if( dataFav->compteur<3 ){
     
    dataFav->compteur=dataFav->compteur +1;
    printf("%i\n",dataFav->compteur);
     
    }
     
    }

    Le problème est que je ne peux appuyer sur le bouton que 4 fois sinon il m'indique une erreur de segmentation.

    Affichage console:

    1
    2
    3
    4
    Erreur de segmentation




    Merci pour toute aide apportée, j'ai l'impression d'avoir épuisé mon imagination sur ce problème .


    BOByTOX

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    C'est une erreur classique lorsqu'on débute avec Gtk+. Chaque signal dispose d'une prototype propre pour la fonction CallBack associée.

    Ici tu utilises le signal "clicked" d'un GtkButton. Le prototype associé doit être de ce type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void user_function (GtkButton *button, gpointer  user_data);
    Donc ta fonction void favoris(DataFav *dataFav); devrait s'écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void favoris(GtkButton *button, DataFav *dataFav);

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 16
    Par défaut
    Pour l'explication très claire et le temps de réponse :

    Merci beaucoup !

    Problème résolu.

  4. #4
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    De rien . N'oublie pas de marquer ton post "résolu" en cliquant sur le bouton en bas de la fenêtre.

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

Discussions similaires

  1. Pointeurs et structures: erreur de segmentation
    Par Skize dans le forum Débuter
    Réponses: 7
    Dernier message: 07/10/2010, 08h43
  2. [structures] Erreur structure vide
    Par emi3113 dans le forum MATLAB
    Réponses: 6
    Dernier message: 04/07/2007, 18h36
  3. Réponses: 4
    Dernier message: 08/06/2007, 14h29
  4. Structures, erreurs de compilation
    Par koktel_dfr dans le forum C
    Réponses: 10
    Dernier message: 24/05/2007, 14h30
  5. Réponses: 20
    Dernier message: 11/07/2006, 17h11

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