PointeurToujourPointeurEtEncore
Fermé
MiniMonster
Messages postés
8
Date d'inscription
dimanche 23 octobre 2011
Statut
Membre
Dernière intervention
2 mars 2012
-
Modifié par irongege le 30/11/2011 à 08:49
MiniMonster Messages postés 8 Date d'inscription dimanche 23 octobre 2011 Statut Membre Dernière intervention 2 mars 2012 - 30 nov. 2011 à 16:31
MiniMonster Messages postés 8 Date d'inscription dimanche 23 octobre 2011 Statut Membre Dernière intervention 2 mars 2012 - 30 nov. 2011 à 16:31
3 réponses
Hxyp
Messages postés
401
Date d'inscription
vendredi 28 janvier 2011
Statut
Membre
Dernière intervention
27 avril 2014
54
30 nov. 2011 à 07:14
30 nov. 2011 à 07:14
Bonjour, apparemment vous essayez de faire un pointeur de fonction. C'est un peu différent dans la syntaxe regardez :
<code>
int main(void){
int (*pt)(int,int),a;
pt=additionDeDeux;
a=pt(2,3);
printf("%d",a);
return 0;
}
Voyez vous pouvez créer un pointeur de fonction en utilisant le type quelle retourne, les parenthèses et en préciser le nom du pointeur "*pt" qui recevra l'adresse de la fonction avec ou sans le &. Et ensuite c'est important de préciser quels sont les paramètres, leurs types (int,int). Pas obligé de donner un nom aux paramètres c'est optionnel, pareil pour le pointeur de fonction s'il est lui même un paramètre... enfin là il n'en est pas un alors faut en mettre un : (*pt) au lieu de (*) tout court.
<code>
int main(void){
int (*pt)(int,int),a;
pt=additionDeDeux;
a=pt(2,3);
printf("%d",a);
return 0;
}
Voyez vous pouvez créer un pointeur de fonction en utilisant le type quelle retourne, les parenthèses et en préciser le nom du pointeur "*pt" qui recevra l'adresse de la fonction avec ou sans le &. Et ensuite c'est important de préciser quels sont les paramètres, leurs types (int,int). Pas obligé de donner un nom aux paramètres c'est optionnel, pareil pour le pointeur de fonction s'il est lui même un paramètre... enfin là il n'en est pas un alors faut en mettre un : (*pt) au lieu de (*) tout court.
pekzy
Messages postés
2
Date d'inscription
mercredi 30 novembre 2011
Statut
Membre
Dernière intervention
30 novembre 2011
1
30 nov. 2011 à 08:37
30 nov. 2011 à 08:37
D'après moi le problème vient de tes fonctions :
elle reçoivent un "int" au lieu d'un "*". De plus , une fonctions qui reçois des pointeurs ne revoit pas de "return" le plus souvent elles sont de type "void".
On utilise principalement les pointeurs en C, pour renvoyer plus d'une seul valeur dans une fonction.
elle reçoivent un "int" au lieu d'un "*". De plus , une fonctions qui reçois des pointeurs ne revoit pas de "return" le plus souvent elles sont de type "void".
On utilise principalement les pointeurs en C, pour renvoyer plus d'une seul valeur dans une fonction.
MiniMonster
Messages postés
8
Date d'inscription
dimanche 23 octobre 2011
Statut
Membre
Dernière intervention
2 mars 2012
30 nov. 2011 à 16:31
30 nov. 2011 à 16:31
ca y es ça marche !! :) Merci à tout les 2 :)
Stp pekzy tu peux me donner un mini exemple où le pointeur revois plus d'une seul valeur en argument à une fonction ?
Stp pekzy tu peux me donner un mini exemple où le pointeur revois plus d'une seul valeur en argument à une fonction ?