Poiteur sur fonction ? ( C )

Fermé
lirycs78 Messages postés 103 Date d'inscription vendredi 7 juillet 2006 Statut Membre Dernière intervention 7 janvier 2010 - 8 mars 2009 à 20:31
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 8 mars 2009 à 22:55
Bonsoir, question stupide peut etre mais essentielle, a quoi sa sert de faire des pointeur sur des function ?

Et une autre question, si jai une fonction qui return un tableau, comment puis je utiliser le tableau retourner ?

Merci
A voir également:

7 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
8 mars 2009 à 20:54
Salut,
Bonsoir, question stupide peut etre mais essentielle, a quoi sa sert de faire des pointeur sur des function ?
Les pointeurs sur fonctions permettent de donner de la souplesse à une fonction. Par exemple, appeler telle ou telle fonction juste en travaillant sur un pointeur. C'est aussi beaucoup utilisé pour des callbacks dans des GUI.

Et une autre question, si jai une fonction qui return un tableau, comment puis je utiliser le tableau retourner ?
En C, une fonction ne peut pas retourner de tableaux.

Cdlt
1
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
8 mars 2009 à 21:24
Le type char c'est bien pour une chaine de caractére non ?
Non. Le type char c'est un type d'un byte d'au minimum 8 bits. C'est tout.

Après, si tu souhaites faire un tableau de char, il faut utiliser :
char chaine[10];
1
lirycs78 Messages postés 103 Date d'inscription vendredi 7 juillet 2006 Statut Membre Dernière intervention 7 janvier 2010 1
8 mars 2009 à 21:03
ha donc par exemple si jai ceci :

char text_on(){
char texte[1000];
scanf("%s", texte); /* ecrire une chaine de caractére */
return *texte;
}

ce n'est pas bon ?

il me retourne bien le tableau non ?
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
8 mars 2009 à 21:12
Non, il ne te retourne pas un tableau.
Dans le cas de ton exemple, il te retournera le premier caractère de ta chaîne texte. (*texte vaut texte[0]).
D'ailleurs, tu n'as qu'à voir le prototype de la fonction : char text_on(){ pour te convaincre qu'il te retourne un char.
Au mieux, tu peux renvoyer un pointeur sur une zone allouée et t'en servir comme un tableau (mais ce ne sera pas un tableau).
0
lirycs78 Messages postés 103 Date d'inscription vendredi 7 juillet 2006 Statut Membre Dernière intervention 7 janvier 2010 1
8 mars 2009 à 21:17
le type char c'est bien pour une chaine de caractére non ?
puisque l'on sen sert pour creer des tablau de string ??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lirycs78 Messages postés 103 Date d'inscription vendredi 7 juillet 2006 Statut Membre Dernière intervention 7 janvier 2010 1
8 mars 2009 à 22:21
D'accord merci pour ces reponse :)
0
lirycs78 Messages postés 103 Date d'inscription vendredi 7 juillet 2006 Statut Membre Dernière intervention 7 janvier 2010 1
8 mars 2009 à 22:23
Par contre je voi pas comment faire pour mon code, car je suis entrain de faire un mini editeur de texte pour m'entrainer et je souhaiterai pouvoir une fois le texte entré, le sauvegarder, le probléme etant que si on ne peut pas return le tableau contenant le text je ne pourrai pas linscrire dans un fichier :/

voici le code http://rafb.net/p/J8GhVM90.html
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
8 mars 2009 à 22:55
J'ai survolé ton code.
while(choix != (1 || 2)){
Ca ne marchera pas. (1||2) va te renvoyer 1. En fait il faut écrire :
while(choix != 1 || choix!=2){


le probléme etant que si on ne peut pas return le tableau contenant le text je ne pourrai pas linscrire dans un fichier :/
Bien sûr que si.
A défaut de renvoyer un tableau, tu peux retourner un pointeur sur un char contenant la chaîne à sauvegarder.
Ou alors, dans la fonction où ta chaîne à sauvegarder est définie, tu appelles une fonction sauvegarder(char *texte), qui contient en arguments la chaîne. Et dans la fonction sauvegarder(char *texte), tu écris texte dans le fichier.
0