Bonjour:le même source fonctionne parfaitement bien avec DEVC++ et fait des erreurs de compilation avec CodeBlocks
Voici la séquence incriminée et les erreurs détectées avec CodeBlocks
..............Merci d'avance ....................
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
 
{
   char *nom;
   char *prenom;
   T_LIST notes;
} ETUD, *P_ETUD;
 
struct node 
{
   struct node *queue;
   void        *label;
};
 
int is_empty(T_LIST l) 
{
   return (l==NULL);
}
 
T_LIST nil() 
{
   return NULL;
}
 
void do_list(void (*p)(), T_LIST l) 
{
   if( is_empty(l) ) 
   {
      return;
   }
   else 
   {
      (*p)(l -> label);    /*** ligne 46***/
      do_list(p, l -> queue);
   }
}
 
void imp_note (float *une_note)
{
   printf (" %.2f  " , *une_note) ;
} ;
 
void imp_etudiant(P_ETUD un_etud)
{
   if (un_etud != NULL)
   {
      printf (" %s ", un_etud->nom) ;
      printf (" %s ", un_etud->prenom) ;
      printf (" notes= ");
      do_list (imp_note, un_etud->notes) ; /*** ligne 59 **/
      printf(" \n ") ;
   }
}
 
void afficher_etudiant (T_LIST ancre)
{
   if (is_empty (ancre)) 
      printf(" afficher : liste vide \n ") ;
   else 
      do_list (imp_etudiant,ancre) ;  /**** ligne 65 ****/
}
voici les erreurs détectées
In function 'void do_list(void (*) (), node*';
46 error: too many arguments to function
In function 'void imp_etudiant(etudiant*)';
59 error invalid conversion from 'void(*)(float*)' to 'void(*)()'
59 error initializing argument l of 'void do_list(void(*)(),node*)
in function 'void afficher_etudiant(node*)';
65 error: invalid conversion from 'void(*)(etudiant*) to 'void(*)()'