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 :

structure et pointeurs


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 31
    Par défaut structure et pointeurs
    Bonjour à tous,
    D'abord j'utilise cygwin,
    Voilà, mon souci c'est le code suivant, il compile mais à l'execution il m'affiche:

    5 [main] test_struct 372 _cygtls::handle_exceptions: Error while dumping state <probably corrupted stack>
    Segmentation fault <core dumped>
    Voici le 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
     typedef struct {
                        int *cases_gellule;
                    }cases;
     
    typedef struct {
                        cases *pivot;
                    }gellule;
     
    main()
    {
        gellule *gellule1;
        int a;
     
        gellule1->pivot->cases_gellule = (&a);
    }
    j'ai aussi essayer avec devc++ mais il n'affiche d'erreur à l'execution il se bloque tout simplement.
    à tous pour l'aide !

  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
    gellule1 est un pointeur sur structure qui n'a pas été initialisé, autrement dit, il ne contient PAS l'adresse d'une structure. Du coup : gellule1->... plante.
    Il faut se souvenir que créer un pointeur sur quelque chose ne crée PAS en même temps le quelque chose !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int main(void)
    {
        gellule  gell; 
        gellule *gellule1 = &gell;
        int a;   
        gellule1->pivot->cases_gellule = (&a);
        return 0;
    }
    A noter que le même problème se situe alors sur gellule1->pivot : pointeur sur structure non initialisé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int main(void)
    {
        gellule  gell; 
        gellule *gellule1 = &gell;
        int a; 
        cases cas;
        gellule1->pivot= &cas;
        gellule1->pivot->cases_gellule = (&a);
        return 0;
    }

  3. #3
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par mdabire Voir le message
    Bonjour à tous,
    D'abord j'utilise cygwin,
    Voilà, mon souci c'est le code suivant, il compile
    Non !
    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
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : D:\dev\forums\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c:10: warning: return type defaults to `int'
    main.c:10: warning: function declaration isn't a prototype
    main.c: In function `main':
    main.c:15: warning: control reaches end of non-void function
    main.c:11: warning: 'gellule1' might be used uninitialized in this function
    Linking console executable: console.exe
    Process terminated with status 0 (0 minutes, 2 seconds)
    0 errors, 4 warnings
    http://emmanuel-delahaye.developpez....tm#cfg_compilo

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

Discussions similaires

  1. Structures et pointeurs
    Par Tchetch dans le forum C
    Réponses: 14
    Dernier message: 19/10/2006, 13h30
  2. Structure et pointeur
    Par Nalido dans le forum C
    Réponses: 5
    Dernier message: 08/08/2006, 15h08
  3. Copie de structure par pointeur - Problème LSB MSB
    Par the_ionic dans le forum Réseau
    Réponses: 4
    Dernier message: 17/07/2006, 15h08
  4. Structures et pointeurs
    Par mastochard dans le forum C
    Réponses: 17
    Dernier message: 25/05/2006, 11h55
  5. [structure et pointeur] problème d'affichage
    Par kitsune dans le forum C
    Réponses: 17
    Dernier message: 22/03/2006, 22h20

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