Bonjour,
Je cherche, tout simplement, à faire une fonction acceptant un nombre multiple d'arguments.
Je travaille sur Linux avec gcc.
Je viens de faire le "test case" suivant :
que je compile avec la ligne de commande suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #include <stdio.h> #include <stdlib.h> #include <stdarg.h> static void many_args(const char *string, ...) { va_list args; va_start(args, string); while (string) { puts(string); string = va_arg(args, const char*); } va_end(args); } int main(void) { many_args("aaa", "bbb", "ccc"); return EXIT_SUCCESS; }
La compilation est ok, mais voilà le résultat obtenu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part gcc -Wall -pedantic -o test test.c
Je ne comprends pas !$ ./test aaa bbb ccc AWAVI��AUATL�%� AWAVI��AUATL�%� ���� Erreur de segmentation (core dumped) $
Est ce que quelqu'un peut m'expliquer svp ?
Merci.
Partager