Petit problème : un même programme bête de TP sur les pointeurs fonctionne à merveille compilé avec GCC sous une Debian mais produit un résultat horrible avec une compilation par Dev C++ via ming je ne sais quoi.
J'utilise juste les bibs : stdio.h et stdlib.h
Ya t-il à adapter quoi que ce soit, changer le nom d'une lib, en rajouter une pour rendre le programme correct sous windows ? Quelle est ma bêtise grossière que je connais pas ?
Voilà le listing complet en brut...
et merci pour votre aide bien sûr !
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111 #include<stdio.h> /* pour la declaration de NULL */ #include<stdlib.h> struct cellule {int nb; struct cellule *suivant; }; struct t_file { struct cellule *premier; struct cellule *dernier; }; void initialiser(struct t_file *f) { f->premier=NULL; f->dernier=NULL; } void inserer(struct t_file *f , int valeur) { /* Cas premier element */ if ((f->premier == NULL) && (f->dernier == NULL) ) { f->dernier=(struct cellule *) malloc (sizeof(struct cellule)); f->dernier->nb=valeur; f->dernier->suivant=NULL; f->premier=f->dernier; } else { f->dernier->suivant = (struct cellule *) malloc (sizeof(struct cellule)); f->dernier->suivant->nb = valeur; f->dernier=f->dernier->suivant; } } void afficher(struct t_file f) { struct cellule *temp; temp = f.premier; while (temp != NULL) { printf("%d \n", temp->nb); temp=temp->suivant; } } int compter(struct t_file f) { int compteur =0; struct cellule *temp; temp = f.premier; while (temp != NULL) { compteur =compteur +1; temp=temp->suivant; } return compteur; } void afficher_debut(struct t_file f) { if (f.premier != NULL) { printf("%d \n", f.premier->nb); } } void afficher_fin(struct t_file f) { if (f.dernier != NULL) { printf("%d \n", f.dernier->nb); } } void supprimer(struct t_file *f) { f->premier = f->premier->suivant; } int main (void) { struct t_file f; initialiser (&f); inserer (&f,3); inserer(&f,5); afficher(f); afficher_debut(f); afficher_fin(f); supprimer(&f); afficher(f); printf("%d \n",compter(f)); return 0; }
Partager