我知道这会被认为是愚蠢的,但我正在尝试硬编码命令行参数,而不是修改一大堆代码仅用于测试目的。
现有的主要功能如下:
int main(int argc, char **argv) {
Run run(argc, argv);
return run.exec();
}
我想对参数进行硬编码...所以这意味着传递一个指向指针的新指针(就像运行函数所采用的那样)或者重写argv?
我试图传递的数据......
char *config[] = {
" --user=temp"
" --name=Joe"
" --id=20"
};
最安全,最“适当”的低音方法是什么? 我也希望数组大小是动态的,所以我不必在调用函数时手动定义argc。
我是指针和C的新手,所以欢迎任何帮助!
答案 0 :(得分:4)
这只是一个“字符串数组”:
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]
。