如何将字符串数组转换为字符**

jac*_*row 4 c++ c++11

我想在这里手动发送值

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)

Chr*_*odd 6

其他人已经注意到问题在于您试图将字符串文字(它们是 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)