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 :

petit problème avec les listes chainées


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 42
    Points : 27
    Points
    27
    Par défaut petit problème avec les listes chainées
    coucou tous le monde .
    J'ai un petit probleme au niveau de l'execution de mon programme , lorsque je l'execute sous code blocks il marche parfaitement mais sous turbo C le compilateur se ferme tous seul , j'aimerai bien savoir d'ou vien le probleme .
    voici mon programme :
    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
    40
    #include <stdio.h>
    #include <conio.h>
     
    typedef struct  element
    {
    	char def[20];
    	char lettre;
    	struct element *fils;
    	struct element *frere;
    }element;
    int compt = 1;
    element *S;
     
     
    void ajouter_arbre()
    {
    element *P,*D;
    P=(element*)malloc(sizeof(*P));
    printf("Donnez le nom de l'arbre : ");
    scanf("%s",P->def);
    P->lettre=compt;
    compt++;
    P->fils=NULL;
    P->frere=NULL;
    if(S==NULL) S=P;
    else
    {
            D=S;
            while(D->frere!=NULL)
            { D=D->frere; }
            D->frere=P;
    }
    }
     
    int main()
    {
    	ajouter_arbre();
    printf("%s",S->def);
    getch();
    }
    merci

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    C'est une option à configurer "stop after execution" quelque chose comme cela.

    c'est parce que tu ne définis pas dans le code une ouverture de console dos ou nux, en ligne de commande (depuis un terminal unix ou console dos) tu n'auras pas ce "problème"

  3. #3
    Membre éprouvé Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Points : 1 132
    Points
    1 132
    Par défaut
    Je ne me suis pas penché sur ton code, mais ce n'est pas plutôt ton programme qui se ferme après son exécution ? (ou alors Turbo C, l'environnement de développement ?)

    si c'est le cas : Comment vider le buffer clavier ?

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2005
    Messages : 147
    Points : 165
    Points
    165
    Par défaut
    Bonjour,

    je n'ai pas turbo C sous la main donc je n'ai pas pu tester, je voulais juste t'indiquer que ton code fonctionne avec gcc sous linux, mis à part l'inclusion à conio.h et la fonction getch() qui ne sont pas sur mon ordi (je suis pas sur mon ordi en fait). Par contre tu devrais include stdlib.h, pour utiliser malloc sans warning.

    Le "compilateur se ferme tout seul" est une drole de description de ton problème, et je pense que tu dois parler de ton programme, ce qui serait logique puisque code blocks ne ferme pas la console d'exécution du programme à la fin, pour pouvoir lire ce qui a été affiché, mais turbo C n'implémente probablement pas cette fonctionnalité. Ton getch() doit capter le \n (tu entres un \n quand tu appuies sur entrée) qui n'est pas lu par le scanf, et donc n'est pas blocant. La solution idiote est de mettre un deuxième getch() , la bonne solution est de lire la FAQ comme te l'a indiqué ssmario2, et de vider le buffer clavier après ton scanf.
    Personnellement j'utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ( (c=getchar()) != '\n' && c != EOF);
    qui est plus moche je le reconnais, mais plus court, et je ne sais pas si ça fonctionne avec conio (il faut peut etre remplacer getchar() par getch()).

    Bon courage

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 42
    Points : 27
    Points
    27
    Par défaut ^^
    merci pour votre aide , j'ai suivi votre conseil et ça a marche

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

Discussions similaires

  1. Problème avec les listes chainées
    Par Naswd_94 dans le forum Débuter
    Réponses: 8
    Dernier message: 09/03/2015, 10h40
  2. un problème avec les listes chainées
    Par chmek firas dans le forum Débuter
    Réponses: 4
    Dernier message: 05/05/2012, 06h55
  3. Problème avec les listes chainées
    Par t-mac06 dans le forum Débuter
    Réponses: 12
    Dernier message: 26/01/2012, 20h57
  4. Problème avec les listes chainées
    Par reeda dans le forum C++
    Réponses: 10
    Dernier message: 23/04/2008, 16h21
  5. Petits problèmes avec les listes
    Par cepekinio dans le forum Prolog
    Réponses: 4
    Dernier message: 30/10/2007, 13h23

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