Suppose I have a function which takes variadic arguments (...) or a va_list passed from another such function. The main logic is in this function i
...
va_list
I find the texts quite ambiguous on this question. The simplest is perhaps to look in the standard how predefined functions with va_list are supposed to receive it, e.g vsnprintf. And this is clearly by value and not by reference.
vsnprintf