Pointeur vers une fonction ayant un paramètre un char
Résolu
fire3d
Messages postés
15
Statut
Membre
-
fire3d Messages postés 15 Statut Membre -
fire3d Messages postés 15 Statut Membre -
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(char *str)
- Coco char - Accueil - Réseaux sociaux
- Remplaçant de Coco : quelles solutions pour tchater gratuitement en ligne ? - Accueil - Réseaux sociaux
- Sony str-de315 - Forum Enceintes / HiFi
- Convertir char en int c ✓ - Forum C
- Char(10) excel francais ✓ - Forum Excel
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
15
Statut
Membre
1
Merci ça compile ! ;)