Bonjour,

Voila: j'ai d'un part un fichier texte (*.txt) dont je lit tout les carcatère et de l'autre une liste chainé composé donc de structure avec les élément suivant:

code ascii de la lettre (type char)
frequence de la lettre dans le texte (type int)
pointeur vers prochaine structure (type *struct)

A chaque caractère, je recherche si la lettre existe déjà dans la liste chainé et incrémente la valeur de "fréquence" de la structure correspondante. Si ce n'est pas le cas,on ajoute un nouvelle élément en début de liste. Mais lorsque je veux lire le premier élément (genre la fréquence du premier carcatère par exemple, windows me renvoie une erreur)


Peut être est-ce mal codé ?

Je joint donc le code source en espérant que vous trouviez la solution!

Merci d'avance!


déclaration structure et pointeur sur structure
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
//définition des types
typedef struct lettre_ lettre;
typedef lettre *ptr_lettre;
typedef FILE * fichier;
 
struct lettre_
{
char code_ascii;        
int frequence;        
ptr_lettre suivant;
};
Chaque caractère est stocké dans un char element, puis j'exécute un"ajouter_lettre(element,L);" avec L de type ptr_lettre

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
void ajouter_lettre(char ascii,ptr_lettre actuel)
{
    ptr_lettre inter=NULL;
 
    if(actuel==NULL) //ajout nouvelle lettre
    {
        inter=(ptr_lettre)malloc(sizeof(lettre));
        inter->code_ascii=ascii;
        inter->frequence=1;
        inter->suivant=actuel;
        actuel=inter;
    }
    else
    { 
           if((actuel->code_ascii)==ascii) 
                 (actuel->frequence)++;
           else 
                ajouter_lettre(ascii,actuel->suivant);
    }
}
La structure de tête a été initialisé à NULL évidement