problème de pointeur sur fonction

problème de pointeur sur fonction - C - Programmation

Marsh Posté le 23-05-2004 à 11:27:27    

pourquoi ca marche pas???
warning :function' : 'int (__cdecl *)(struct Setudiant *,struct Setudiant *)' differs in levels of indirection from 'int '
/*type etudiant*/
typedef struct Setudiant
{
 char Nom[20];
 char Prenom[20];
 int Annee;
 int Notes[7];
}etudiant;
 
/*type tableau d'etudiant*/
typedef struct
{
 etudiant ** tab;
 int taille;
}tableau_etu;
 
 
 
void Tri_Bulles(tableau_etu * tab , int (*comparaison)(etudiant *,etudiant *))
{
    int j;
 int i;
 etudiant *tmp;    
 
 for(i=0;i=(tab->taille)-2;i++)
 {
  for(j=(tab->taille)-1;j>=i;j--)
  {
   if( ((*comparaison)(tab->tab[j],tab->tab[j-1])) <0 )
   {
    tmp=tab->tab[j];
    tab->tab[j]=tab->tab[j-1];
    tab->tab[j-1]=tmp;
   }
  }
 }
}
 
int main(void)
{
  ...
  Tri_Bulles(etu,compare_age(etu->tab[nbetu-1],etu->tab[nbetu-2]));

Reply

Marsh Posté le 23-05-2004 à 11:27:27   

Reply

Marsh Posté le 23-05-2004 à 11:35:59    

l'adresse de la fonction c'est son nom
 
Tri_Bulles(etu,compare_age);

Reply

Marsh Posté le 23-05-2004 à 11:48:31    

merci bien !

Reply

Marsh Posté le 02-06-2004 à 06:18:19    

À lire du code j'ai trouvé cette déclaration:  
 

Code :
  1. int * s(int * T[3]);


 
Je sait que

Code :
  1. int * T[3];

est un tableau de 3 pointeur sur des entier, mais à quoi sert le

Code :
  1. int * s( ... );

?

Reply

Marsh Posté le 02-06-2004 à 07:14:27    

ben à rien si tu n'utilises la liste d'arguments variables

Reply

Marsh Posté le 02-06-2004 à 07:46:09    

Je ne comprend pas bien ta réponce en fait je veut savoir en quoi consiste l'ensemble de la déclaration

Code :
  1. int * s(int * T[3]);

Reply

Marsh Posté le 02-06-2004 à 07:49:47    

une fonction s qui retourn une un int* et qui prend un argument un int **, sémantiquement un tableau de 3 int*

Reply

Marsh Posté le 02-06-2004 à 08:03:05    

Taz a écrit :

une fonction s qui retourn une un int* et qui prend un argument un int **, sémantiquement un tableau de 3 int*


Merci Beaucoup J'étais vraiment dans la lune.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed