Je suis en train de programmer une bibliotheque et au bout d'un moment je tombe sur un bout de code qui ressemble a ça :
#include <stdarg.h>
#include <string.h>
void Y (char a, va_list ap) {
// faire quelque chose
}
void X (char *a, va_list ap) {
size_t size = strlen (a);
for (size_t i = 0; i < size; i++) {
Y (a[i], ap); // même arguments pour tous
}
}
Autrement dit, X applique Y a toutes les lettres de la chaine de caractère avec a chaque fois les mêmes arguments.
je me demandais si il était possible de faire quelque chose comme ça et, si c'est possible, ou placer va_start et va_end (dans la fonction X ? la fonction Y ? les deux ?)
merci d'avoir lu, j'espère vite trouver une réponse !
EDIT :
Après avoir fait 2/3 experimentations j'ai réussit a resoudre mon problème tout seuls. Pour ceux qui sont interessé (on ne sait jamais) :
#include <stdarg.h>
#include <string.h>
void Y (char a, va_list ap) {
// faire quelque chose
}
void X (char *a, va_list ap) {
size_t size = strlen (a);
va_start (ap, a);
for (size_t i = 0; i < size; i++) {
va_list op;
va_copy (op, ap);
Y (a[i], op);
va_end (op);
}
va_end (ap);
}
marche bien. Merci quand meme !
- Edité par BalthazarMoonset 18 février 2017 à 18:39:23
passer va_list a plusieurs fonctions
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.