2

一部のコードを別のバイナリから移動して、メイン プログラム内に配置しようとしています。残念ながら、メイン関数の初期化変数を模倣することはできません。

どうすれば手で作成できますargcargv? 誰かが私にいくつかの例の割り当てを与えることができます.

それは次のように見えるからです:

int main(int argc, char *argv[])

私はそれらを次のように割り当てることができると考えました:

int argc=1;
char *argv[0]="Example";

しかし、うまくいきません。これがどのように行われるのか、誰か教えてもらえますか?

4

2 に答える 2

6
int argc = 3;
char *argv[4];
argv[0] = "fake /path/to/my/program";
argv[1] = "fake arg 1";
argv[2] = "fake arg 2";
argv[3] = NULL;
fakemain(argc, argv);
于 2010-03-29T17:30:24.993 に答える
1

配列の最後の要素は、argv[]実際argv[argc]にはNULLポインターです。

いくつかのコード例:

char *argv[] = { "first", "second", NULL }; 
int argc = sizeof(argv) / sizeof(*argv) - 1;
于 2010-03-29T17:15:36.460 に答える