Commit 6c8b6d76d29ceef904e646aed87ebb609496497e
1 parent
893dbc98
le debut des problemes
Showing
1 changed file
with
33 additions
and
18 deletions
Show diff stats
projet0segfault.c
... | ... | @@ -14,19 +14,22 @@ struct cell { |
14 | 14 | }; |
15 | 15 | |
16 | 16 | void initialisation_tab_arbre(struct node tab[]) { |
17 | + | |
17 | 18 | for(int i = 0; i < A; i++) { |
18 | - tab[i].lettre = 97+i; //ajout lettres minuscules | |
19 | + tab[i].lettre = 97+i; //ajout lettres minuscules | |
20 | + tab[i].listeFils = NULL; | |
19 | 21 | } |
22 | + | |
20 | 23 | tab[A].lettre = 39; |
21 | - /*for(int i = 0; i < 8; i++) { | |
22 | - tab[i+26].lettre = 130+i; //ajout caractères spéciaux | |
23 | - }*/ | |
24 | + tab[A].listeFils = NULL; | |
25 | + | |
24 | 26 | } |
25 | 27 | |
26 | 28 | void ajout_tete(char elem, struct cell** pL) { |
27 | 29 | struct cell* p; |
30 | + | |
28 | 31 | p = malloc(sizeof(struct cell)); |
29 | - p->arbre = malloc(sizeof(struct node)); | |
32 | + //p->arbre = malloc(sizeof(struct node)); | |
30 | 33 | p->arbre->lettre = elem; |
31 | 34 | p->arbreSuivant = *pL; |
32 | 35 | *pL = p; |
... | ... | @@ -41,16 +44,18 @@ void lien_listeFils(struct cell** pL) { |
41 | 44 | |
42 | 45 | struct cell* insertion(char elem, struct cell** pL) { |
43 | 46 | printf("insert\n"); |
44 | - printf("*pL : %d\n", *pL); | |
47 | + printf("*pL : %p\n", *pL); | |
48 | + printf("(*pL)->arbre : %p\n", &(*pL)->arbre); | |
45 | 49 | if((*pL == NULL)||((*pL)->arbre->lettre > elem)) { |
46 | 50 | printf("condition1\n"); |
47 | - lien_listeFils(pL); | |
51 | + //lien_listeFils(pL); | |
48 | 52 | ajout_tete(elem, pL); |
49 | - printf("return insertion : %d\n", (*pL)->arbre->listeFils); | |
53 | + printf("return insertion : %p\n", (*pL)->arbre->listeFils); | |
50 | 54 | return (*pL)->arbre->listeFils; |
51 | 55 | } |
52 | 56 | else if((*pL)->arbre->lettre == elem) { printf("condition2\n"); return (*pL)->arbre->listeFils;} |
53 | 57 | else {printf("esle\n"); insertion(elem, &(*pL)->arbreSuivant); } |
58 | + | |
54 | 59 | } |
55 | 60 | |
56 | 61 | /*void affiche_tab(struct node tab[]) { |
... | ... | @@ -60,24 +65,28 @@ struct cell* insertion(char elem, struct cell** pL) { |
60 | 65 | }*/ |
61 | 66 | |
62 | 67 | void lire_fichier(FILE* fd, struct node tab_arbre_prcp[]) { |
68 | + printf("entrer lire_fichier\n"); | |
63 | 69 | struct cell* localisationArbre; |
64 | 70 | char motLu[50]; |
65 | 71 | int i = 0; |
72 | + printf("addressentré fd: %p\n", fd ); | |
66 | 73 | if(fd!=NULL) |
67 | 74 | { |
75 | + printf("fd!=NULL\n" ); | |
68 | 76 | while(fscanf(fd, "%s", motLu)==1) |
69 | 77 | { |
78 | + printf("entrer while\n"); | |
70 | 79 | if((motLu[i] >= 'a') && (motLu[i] <= 'z')) localisationArbre = tab_arbre_prcp[motLu[0]-97].listeFils; |
71 | 80 | |
72 | 81 | if(motLu[i] == 39) localisationArbre = tab_arbre_prcp[A].listeFils; //A = derniere case du tab |
73 | 82 | |
74 | - printf("avant while : localisation : %d\n", localisationArbre); | |
83 | + printf("avant while : localisation : %p\n", localisationArbre); | |
75 | 84 | while(motLu[i] != '\0') |
76 | 85 | { |
77 | 86 | i += 1; |
78 | - printf("lettre lue : %c address : %d\n", motLu[i], localisationArbre); | |
87 | + printf("lettre lue : %c address : %p\n", motLu[i], localisationArbre); | |
79 | 88 | localisationArbre = insertion(motLu[i], &localisationArbre); |
80 | - printf("localisation apres : %d\n", localisationArbre); | |
89 | + printf("localisation apres : %p\n", localisationArbre); | |
81 | 90 | printf("\n"); |
82 | 91 | } |
83 | 92 | printf("\n"); |
... | ... | @@ -90,17 +99,23 @@ void lire_fichier(FILE* fd, struct node tab_arbre_prcp[]) { |
90 | 99 | |
91 | 100 | int main(int argc, char* argv[]) { |
92 | 101 | FILE* fd; |
102 | + fd=NULL; | |
93 | 103 | |
94 | - struct node tab_arbre[A]; | |
95 | - struct node Arbre; | |
96 | - char lettre; | |
97 | - | |
98 | - if(argc>1) fd = fopen(argv[1], "r"); | |
104 | + struct node tab_arbre[A+1]; | |
105 | + //struct node Arbre; | |
106 | + //char lettre; | |
107 | + printf("etape1\n"); | |
108 | + | |
109 | + if(argc>1) fd = fopen(argv[1], "r"); | |
99 | 110 | |
100 | - Arbre.listeFils = NULL; | |
111 | + printf("etape2\n"); | |
101 | 112 | initialisation_tab_arbre(tab_arbre); |
113 | + | |
114 | + printf("tab_arbre[0].listeFils: %p \n", tab_arbre[0].listeFils); | |
115 | + | |
116 | + | |
102 | 117 | lire_fichier(fd, tab_arbre); |
103 | - printf("tab_arbre[0].listeFils->arbre->lettre : %c\n", tab_arbre[3].listeFils->arbre->lettre); | |
118 | + printf("tab_arbre[0].listeFils->arbre->lettre : %c\n", tab_arbre[0].listeFils->arbre->lettre); | |
104 | 119 | //scanf("%c", &lettre); |
105 | 120 | //insertion(lettre, &(Arbre.listeFils)); |
106 | 121 | //printf("lettre : %c\n", Arbre.listeFils->arbre->lettre); | ... | ... |