Structure chainée de pointeurs en C

Utilisateur anonyme -  
 null -
Bonjour,

Je dois faire une calculatrice qui garde une trace des opération faites par un utilisateur.

Voici les opérateurs disponibles:

Je dispose de 3 structures :


struct operation {
int operande_a;
int operande_b;
int resultat;
enum operateurs operateur; //une constante ADDITION par exemple
};

struct element_historique
{
struct operation* operation;
struct element_historique * suivant;
};

struct historique_operations
{
struct element_historique* debut;
int nombre_operations;
};

Pour différentes fonctions, j'ai besoin de parcourir l'historique des opération.

J'ai essayé ce code :

Déclaration d'un historique vide :

struct historique_operations *hist;
hist = (struct historique_operations *)malloc(sizeof(struct historique_operations));

struct element_historique* premier = NULL;
hist->debut = premier;
hist->nombre_operations=0;


struct element_historique* next = &(hist->debut);

while(next!=NULL)
{
printf("%d", result->resultat);
next = &(next->suivant);
}

Au final, on devrait avoir parcouru toute la liste pour pouvoir ajouter un element_historique à la fin. Sauf que la boucle est une boucle infinie.

Voyez vous une erreur ?

Merci d'avance.

1 réponse

null
 
2 cas possibles :

- t'as pas initiliasé ta liste à NULL pour ton pointeur sur structure
ou
- tu essayes next = next->suivant à la place vu que normalement c'est un pointeur...
0