0
int main(int argc, char *argv[])    // Send the path as a parameter
{
    char ptr2[BUFSIZE]; 
    va_list list;
    va_start(list,argv[]);
}

このコードを取得したとしましょう。このメインで複数の引数を取得している場合 (「./program car house student phone」のようなことをするとします)、それらのそれぞれは異なる引数になります。 va_list?

受け取る引数の数はわかりませんが、va_list に入れる必要があります。助けてください! ありがとう!

4

1 に答える 1

2

これを行う移植可能な方法はありません。ただし、次のように書くことで、初期化va_listされたを他の関数に渡すことができますva_list

va_list args;
va_start(args, argv); // or maybe argc? Whatever, this doesn't make sense anyway
// read: "please don't litter production code with UB"
call_the_function(foo, args);
va_end(args);

ところで:

いくつの引数を受け取るかわかりません。

これは真実ではありません - それが のargc議論のmain()目的です。

于 2013-02-14T06:06:33.603 に答える