我想在这里手动发送值
void processArgs(int argc, char** argv);
Run Code Online (Sandbox Code Playgroud)
如果我像这样发送
char* cwd[] = {"./comDaemon", "--loggg=pluginFramework:debug"};
parser->processArgs(2, cwd);
Run Code Online (Sandbox Code Playgroud)
编译器显示警告为
警告:ISO C++ 禁止将字符串常量转换为 'char*' [-Wwrite-strings]
char* cwd[] = {"./comDaemon", "--loggg=pluginFramework:debug"};
Run Code Online (Sandbox Code Playgroud)
其他人已经注意到问题在于您试图将字符串文字(它们是 const)传递给一个采用非常量char **参数的函数。如果您想要创建可以传递给非常量 arg 函数的非常量字符串,则需要显式字符数组(您可以使用字符串文字对其进行初始化):
char arg0[] = "./comDaemon";
char arg1[] = "--loggg=pluginFramework:debug";
char *cwd[] = { arg0, arg1 };
Run Code Online (Sandbox Code Playgroud)
你甚至可以在一行上完成这一切:
char arg0[] = "./comDaemon", arg1[] = "--loggg=pluginFramework:debug", *cwd[] = { arg0, arg1 };
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
166 次 |
| 最近记录: |