我试图用这些值初始化*argv:test_file模型结果任何人都可以帮助我如何直接初始化argv而不是使用命令行.我是这样做的:
*argv[]= {"test_file","model","output",NULL};
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我知道它很简单,但我是编程的新手.谁能帮我?
Mic*_*urr 10
char* dummy_args[] = { "dummyname", "arg1", "arg2 with spaces", "arg3", NULL };
int main( int argc, char** argv)
{
argv = dummy_args;
argc = sizeof(dummy_args)/sizeof(dummy_args[0]) - 1;
// etc...
return 0;
}
Run Code Online (Sandbox Code Playgroud)
需要注意的一点是,argv允许修改标准字符串.这些替换的不可能(他们是文字).如果您需要该功能(许多选项解析器可能),您需要更聪明的东西.也许是这样的:
int new_argv( char*** pargv, char** new_args)
{
int i = 0;
int new_argc = 0;
char** tmp = new_args;
while (*tmp) {
++new_argc;
++tmp;
}
tmp = malloc( sizeof(char*) * (new_argc + 1));
// if (!tmp) error_fail();
for (i = 0; i < new_argc; ++i) {
tmp[i] = strdup(new_args[i]);
}
tmp[i] = NULL;
*pargv = tmp;
return new_argc;
}
Run Code Online (Sandbox Code Playgroud)
这样被调用:
argc = new_argv( &argv, dummy_args);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8658 次 |
| 最近记录: |