Pointeur vers une fonction ayant un paramètre un char
Résolu
fire3d
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
fire3d Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
fire3d Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Bonjour :)
J'essaye de pointé un fonction putstr comme cela dans mon main-->
Mais ça ne fonctionne pas :(
J'essaye de pointé un fonction putstr comme cela dans mon main-->
#include <unistd.h> void ft_putchar(char c) { write(1, &c, 1); } void ft_putstr(char *str) { int i; i = 0; while (str[i] != '\0') { ft_putchar(str[i]); i = i + 1; } } int main(void) { void (*k)(*char); k = &ft_putstr; k("Exemple"); return (0); }>
Mais ça ne fonctionne pas :(
A voir également:
- Ft_putstr
- Fonction si et - Guide
- Remettre parametre usine pc - Guide
- Parametre dns - Guide
- Parametre windows - Guide
- Netflix paramètre compte - Guide
1 réponse
Salut fire3d,
Ton problème n'est pas que cela ne "fonctionne pas", c'est que cela ne compile pas en raison d'une syntaxe erronée :
ton pointeur k est mal déclaré (le type de l'argument est faux, en C le type "pointeur sur char s'écrit
Tu as des explications pas à pas et de nombreux exemples là :
http://fr.openclassrooms.com/informatique/cours/les-pointeurs-sur-fonctions-1
Pour ton affectation, le & n'est pas nécessaire, l'identifiant de la fonction suffit.
Pour l'appel de fonction, il est plus clair de l'appeler de cette façon :
Dal
Ton problème n'est pas que cela ne "fonctionne pas", c'est que cela ne compile pas en raison d'une syntaxe erronée :
gcc -Wall fire3d.c
fire3d.c: In function 'main':
fire3d.c:22:18: error: expected declaration specifiers or '...' before '*' token
fire3d.c:23:5: error: 'k' undeclared (first use in this function)
fire3d.c:23:5: note: each undeclared identifier is reported only once for each function it appears in
fire3d.c:24:5: warning: implicit declaration of function 'k' [-Wimplicit-function-declaration]
ton pointeur k est mal déclaré (le type de l'argument est faux, en C le type "pointeur sur char s'écrit
char *et pas ce que tu as écrit).
Tu as des explications pas à pas et de nombreux exemples là :
http://fr.openclassrooms.com/informatique/cours/les-pointeurs-sur-fonctions-1
Pour ton affectation, le & n'est pas nécessaire, l'identifiant de la fonction suffit.
Pour l'appel de fonction, il est plus clair de l'appeler de cette façon :
(*k)("Exemple\n");pour qu'à la lecture de ton code on voie directement qu'il s'agit d'un appel à un pointeur sur une fonction.
Dal
fire3d
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
1
Merci ça compile ! ;)