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 :

fonction d'ajout dans une liste chaînée


Sujet :

C

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 63
    Par défaut fonction d'ajout dans une liste chaînée
    Salut tous,

    C'est bien moi, et encore une fois...
    Bon j'ai lu le poste sur le forum pour débugger, ça m'a aidé à purifier mon programme quand même (programme largement inspiré par un tutoriel sur ce site), mais reste une erreur du genre "windows cesse de fonctionner" dont l'origine me reste inconnue

    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
     
    #include <stdio.h>
    #include <stdlib.h>
     
     typedef struct {int valeur; struct pile * prec;} pile;
     
    int main()
    {
      // typedef struct {int valeur; struct pile * prec;} pile;
       void push(pile **,int);
       pile * Mapile = NULL;
       push(&Mapile , 1);
        return 0;
    }
    void push(pile ** p, int val)
    {pile * element = sizeof(pile);
    element->valeur=val; element->prec= *p;
    *p=element;}
    Voilà, merci d'avance pour votre aide !

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    manque peut être un malloc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pile * element = malloc(sizeof(pile));
    Et puis le retour d'un malloc, cela se teste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(element == NULL)
    {
       /* traitement de l'erreur d'allocation */
    }
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 63
    Par défaut
    Ok merci,

    Je réctifie, pourtant y a toujours des difficultés, je metterai le code réctifié avec les erreurs signalées par le compilateur (sous forme de commenter sur les lignes qui leur correspondent :

    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
     
    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    {
       #include <stdio.h>
    #include <stdlib.h>
     
     /*1*/typedef struct {int valeur; struct pile * prec;} pile;
     
     
     /*2*/pile * Mapile = NULL;
     
     
     
    /*3*/void push(pile ** p, int val)
     
    {pile * element = malloc(sizeof(pile));
    element->valeur=val; element->prec= *p;
    *p=element;}
     
    /*4*/int main()
    { //warning : 'main' is normally a non-static function
        push(&Mapile, 1);
        printf("%d\n",Mapile->valeur);
        printf("%d",Mapile->prec); // warning : int format, pointer arg (arg 2)
     
        return 0;
    } // error : syntax error at end of input

  4. #4
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Il faut reprendre la présentation car là, c'est illisible :
    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
    #include <stdio.h>
    #include <stdlib.h>
     
    typedef struct
    {   int valeur;
        struct pile * prec;
    } pile;
     
    pile * Mapile = NULL;
     
    void push(pile ** p, int val)
    {
        pile * element = malloc(sizeof(pile));
        element->valeur = val;
        element->prec = *p;
        *p = element;
    }
     
    int main()
    {
        push(&Mapile, 1);
        printf("%d\n", Mapile->valeur);
        printf("%p\n", Mapile->prec); // %p permet d'afficher un pointeur, saut de ligne sinon, cela va gêner pour la suite
    
        return 0;
    }
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 63
    Par défaut
    ok merci, c'est gentil

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 63
    Par défaut
    Autant qu'on y est sur des listes chaînées : ça pourrait marcher sans double pointeur ?

  7. #7
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut
    Oui, mais cela dépendra de comment tu implémentera tes listes chaînées.

  8. #8
    Membre confirmé
    Inscrit en
    Novembre 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 63
    Par défaut
    Citation Envoyé par Pouet_forever Voir le message
    Oui, mais cela dépendra de comment tu implémentera tes listes chaînées.
    Un lien ? Un doc ? Un code ?

  9. #9
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut

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

Discussions similaires

  1. Fonction d'ajout dans une liste chaînée
    Par llDeathll dans le forum C
    Réponses: 10
    Dernier message: 12/01/2015, 17h51
  2. [TPW] Erreur lors de l'ajout d'un élément dans une liste chaînée triée
    Par sangimed dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 18/01/2013, 21h37
  3. Ajout dans une liste/vérification
    Par illight dans le forum Access
    Réponses: 1
    Dernier message: 11/10/2005, 17h12
  4. Insertion d'un noeud dans une liste chaînée
    Par habib106 dans le forum Assembleur
    Réponses: 8
    Dernier message: 07/04/2004, 22h34
  5. [LG]probleme d'ajout dans une liste chainée...
    Par misteryann dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2004, 20h28

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