gpt4 book ai didi

c - 如何在 C 中初始化 argv 数组

转载 作者:太空狗 更新时间:2023-10-29 15:16:36 25 4
gpt4 key购买 nike

我正在尝试使用这些值初始化 *argv:test_file 模型结果任何人都可以帮助我如何直接初始化 argv 而不是使用命令行。我是这样做的:

*argv[]= {"test_file","model","output",NULL};

但它不起作用。我知道它很简单,但我是编程新手。谁能帮帮我?

最佳答案

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;
}

需要注意的是,允许修改标准的 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;
}

这样调用:

argc = new_argv( &argv, dummy_args);

关于c - 如何在 C 中初始化 argv 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12076848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com