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 :

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;
}
que je compile avec la ligne de commande suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
gcc -Wall -pedantic -o test test.c
La compilation est ok, mais voilà le résultat obtenu :

$ ./test
aaa
bbb
ccc
AWAVI��AUATL�%� 


AWAVI��AUATL�%� 
����
Erreur de segmentation (core dumped)
$
Je ne comprends pas !

Est ce que quelqu'un peut m'expliquer svp ?
Merci.