Ciao a tutti ragazzi, devo scrivere una semplice funzione che, invocata dalla shell con un numero di parametri variabili, mi stampi tutti i parametri.
Il concetto è abbastanza semplice, diciamo che l'invocazione di

"fun par1 par2 par3"

sulla shell, mi comporta un output così:

par1
par2
par3

So bene che potrei utilizzare una funzione che preveda l'uso di un intero che mi dica quanti parametri immetto, e un puntatore ad un vettore di stringhe che contiene i parametri, quindi:

void fun(int n, char** arg_list);

ma io vorrei fare esperienza con le funzioni offerte dalla libreria stdarg.h . Qualcuno potrebbe darmi qualche suggerimento su come procedere? La prima versione di questa funzione è questa:

codice:
#include <stdio.h> 
#include <stdarg.h>  

void main(int n, char* first, ...){ 	
va_list ap;  	
char *copy=NULL, *copy1 = NULL;  	
	
if(n>=1){ 		
        va_start(ap, first);  		
        copy = va_arg(ap, char*);  		
        copy1 = va_arg(ap, char*);  		
        printf("%s\n", copy);  		
        printf("%s\n", copy1);  		
        va_end(ap);  
} 
return;  
}
L'ho scritta in modo che prenda in ingresso solo 2 parametri, solo per provare, ma produce un output incomprensibile...Mi dareste una mano? Grazie, confido in voi!