Problème pile

Fermé
Ola_J Messages postés 11 Date d'inscription lundi 17 février 2020 Statut Membre Dernière intervention 25 avril 2020 - Modifié le 25 avril 2020 à 21:46
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 - 26 avril 2020 à 09:28
Bonjour. Je suis en train de découvrir les piles et j'ai écrit un petit code pour m'entraîner mais lorsque j'execute, lors de l'affichage, le premier élément s'affiche à l'infini. Voici mon code et merci d'avance pour votre aide
#include <stdio.h>
#include <stdlib.h>
 
typedef struct element element;
struct element
{
    int valeur;
    element *suivant;
};
typedef struct element* Pile;
void creationPile(Pile pile,int n);
void affichagePile(Pile pile);
 
int main(void)
{  
    int taille;
    Pile maPile;
    maPile=malloc(sizeof(Pile));
    if(maPile==NULL)
    {
        printf("Erreur allocation dynamique");
        exit(EXIT_FAILURE);
    }
    printf("Nous allons travailler sur les Piles\n");
    do
    {
        printf("Entrer la taille de la Pile\n");
        scanf("%d",&taille);
    } while (taille<=0);
    creationPile(maPile,taille);
    affichagePile(maPile);
    return 0;
}
 
void creationPile(Pile pile,int n)
{
    Pile prem,tmp;
    int donnee,i;
    prem=pile;
    printf("Entrer le premier élément\n");
    scanf("%d",&donnee);
    prem->valeur=donnee;
    prem->suivant=NULL;
    for(i=2;i<=n;i++)
    {
        printf("Entrer l'élément suivant\n");
        scanf("%d",&donnee);
        tmp->valeur=donnee;
        tmp->suivant=prem;
        prem=tmp;
    }
}
 
void affichagePile(Pile pile)
{
    Pile a;
    a=malloc(sizeof(Pile));
    a=pile;
    if(a==NULL)
    { 
        exit(EXIT_FAILURE);
    }
    else
    {
        while (a!=NULL)
        {
            if(a->suivant!=NULL)
            {
                printf("%d\n---\n",a->valeur);
                a=a->suivant;
            }
            else
            {
                printf("%d",a->valeur);
            }
             
        }
         
    }
     
}

Message modifié par la modération
Pour une lecture plus facile du code, à l'avenir utilisez les balises, VOIR CETTE PAGE
A voir également:

2 réponses

yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 Ambassadeur 1 557
25 avril 2020 à 22:02
bonjour, es-tu également en train de découvrir malloc()?
0
Ola_J Messages postés 11 Date d'inscription lundi 17 février 2020 Statut Membre Dernière intervention 25 avril 2020
25 avril 2020 à 22:26
Disons que je suis un débutant donc oui
0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557
26 avril 2020 à 09:28
je pense alors que tu essaies de faire un exercice compliqué avant d'avoir maîtrisé des concepts de base.
dans quel contexte fais-tu cet exercice?
0