Я думаю, вам нужно будет изменить подпись printAndSave()
, чтобы указать количество char*
передаваемых аргументов. Например:
void printAndSave(const unsigned int arg_count, ...)
{
unsigned int i;
char* val;
va_list vl;
va_start(vl,arg_count);
for (i=0;i<arg_count;i++)
{
val=va_arg(vl,char*);
printf ("%s\n",val);
}
va_end(vl);
}