Bonjour,
Je voudrais avoir votre aide, sur un truc que j'arrive pas moi aussi à saisir, si çà existe déjà ou non.
* J'ai une fonction Copier qui retourn un Char* chaine :
char* COPIER(char* bloc, int pas1, int pas2);
- Je copie tous les caractères entre un pas1 et pas2 ( pas1 et pas2 désignons le numero des espaces: bloc = AAA_pas1_BBB CCC_pas2_DDD EEE [ici je vais copier BBB CCC]).
- bloc est une chaine de caractères, les mots de dans sont séparés par des espaces.
* Dans le main : pour récuperer le résultat de la fonction copier,
je fais, exemple : char* chaine = char* COPIER(char* bloc, int pas1, int pas2);
Ce que je veux , est-ce qu'il y a u une possibilté pour que le retour de la fonction copier soit parmi les paramétres d'entrées de la fonction? je m'explique
au lieu de faire :
++ char* chaine = char* COPIER(char* bloc, int pas1, int pas2);
j'aurais un truc comme :
++ COPIER(char* bloc, int pas1, int pas2, char* chaine);
c-à-d le résultat va être directement stocké dans chaine,
et sa veut dire dans le main , je directement écrire :
COPIER(char* bloc, int pas1, int pas2, char* chaine); ?
________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfoliohttp://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Bonjour,
Dans ton cas il faudrait une fonction de type
COPIER(char* bloc, int pas1, int pas2, char** chaine) et dasn ce cas tu fournis le pointeur de de chaine dont tu auras pris le soin d'allouer à une taille suffisante pour ne pas avoir d'erreur ( pas2-pas1+1, mais attention aux suivants si pas2 et pas 1 change). dasn la fonction, tu affecteras à *chaine ta chaine extraite.
Est-ce que çà existe un tel truc dans langage C( le résultat de la fonction sera comme un paramétre d'entrèe)?
Je te remercie par te réponse rapide, je vais suivre ton chemin.
Oui ça s'appelle un pointeur.
En général, si on a plusieurs paramètres en sortie de function,
-on passe des pointeurs de variable dans les paramètres de la function. C'est la seule façon de récupérer les données.
Dans ton cas tu alloues
char* chaine
et tu le passes en paramètre avec
&chaine
si ta function est définie comme je te l'avais proposé.
-Sinon tu déclares une structure qui contiendra tous les paramètres en sortie de ta fonction. Tu crées la structure dans ta fonction, tu affectes les valeurs et tu la retourne en sortie.
Il te suffit de cliquer sur chacun des boutons "Réponse acceptée !", que tu juges pertinent. À partir d'un bouton appuyé, la réponse sera automatiquement marquée comme résolue.
PS: N'écris pas en majuscule, c'est inutile, et très mal vu.
________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfoliohttp://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question