va_list ap
is passed as argument to the function outputError()
, it must be initialized by va_start
in the caller of outputError()
(or caller of caller, etc).
To answer your main question, yes, va_start
is required, but not necessarily in the current function where vp_list
is used. The same for va_end
.