[Résolu] Paramètre variable d'une fonction à une autre...
Bonjour,
Voilà j'aimerais si il est possible de passer une liste de paramètre variable que j'ai en entrée d'une fonction à une autre fonction...
J'ai essayé en utilisant le code suivant mais cela ne semble pas fonctionner:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| #include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
void f1(char *format_p, ...)
{
va_list va;
char *name_p = NULL;
va_start(va, format_p);
name_p = va_arg(va, char *);
fprintf(stdout, "format = [%s] name = [%s]\n", format_p, name_p);
va_end(va);
}
void f0(char *format_p, ...)
{
va_list va;
va_start(va, format_p);
f1(format_p, va);
va_end(va);
}
int main() {
f0("AA", "label");
return 1;
} |
Merci pour votre aide
Cdt
VF
Re: Paramètre variable d'une fonction à une autre...
Citation:
Envoyé par vfanelia
Voilà j'aimerais [savoir] si il est possible de passer une liste de paramètre variable que j'ai en entrée d'une fonction à une autre fonction...
Non. Il faut passer par les formats va. Bien lire le chapitre sur <stdarg.h>
Re: Paramètre variable d'une fonction à une autre...
Bonjour et bienvnue sur ce magnifique forum,
essai plutot ça:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| #include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
void f1(char *format_p, va_list va) /* --> c'est la que ça change !! */
{
char *name_p = NULL;
va_start(va, format_p);
name_p = va_arg(va, char *);
fprintf(stdout, "format = [%s] name = [%s]\n", format_p, name_p);
va_end(va);
}
void f0(char *format_p, ...)
{
va_list va;
va_start(va, format_p);
f1(format_p, va);
va_end(va);
}
int main() {
f0("AA", "label");
return 1;
} |
Je n'est pas essayer mais ça doit pas être mal! (je suis plutot en forme aujourd'hui :lol: )