首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C中硬编码或替换char **argv

在C中硬编码或替换char **argv
EN

Stack Overflow用户
提问于 2018-02-08 08:22:41
回答 1查看 554关注 0票数 2

我知道这样做会被认为是愚蠢的,但我正在尝试对命令行参数进行硬编码,而不是仅仅为了测试目的而修改一大堆代码。

现有的main函数如下:

代码语言:javascript
复制
int main(int argc, char **argv) {
    Run run(argc, argv);

    return run.exec();
}

我想对参数进行硬编码...所以这意味着将一个新的指针传递给一个指针(因为这是run函数需要的),或者重写argv?

我想要传递的数据。

代码语言:javascript
复制
    char *config[] = {
         " --user=temp"
         " --name=Joe"
         " --id=20"
    };   

什么是最安全和最“适当”的低音方式来做到这一点?我还希望数组大小是动态的,这样我就不必在调用函数时手动定义argc。

我是指针和C语言的新手,所以欢迎任何帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-08 08:26:49

它只是一个“字符串数组”:

代码语言:javascript
复制
char *my_argv[] = {
     "myprogram", // most programs will ignore this
     "--user=temp",
     "--name=Joe",
     "--id=20",
     NULL
};
Run run(4, my_argv);
return run.exec();

不要忘记程序名本身也是一个参数,并且在最后一个程序名之后应该有一个NULL。

当然,例如,如果不想对程序名进行硬编码,可以将"myprogram"更改为argv[0]

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48675520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档