こんな感じだった。
void myprintf(const char *fmt, ...)
{
 struct arg { char data[256]; };
 struct arg *args;
 va_start(ap, fmt);
 args = &va_arg(ap, struct arg);
 printf(fmt, *args);
}
直接printfにva_argを渡しても良いかも。