+-
如何在c中初始化char * const argv []
API函数采用类型为’char * const argv []’的参数
我在我的c应用程序中初始化这种类型的参数,如:

char* const  argv[] = {"--timeout=0", NULL}; 

并将参数传递给API函数,如:

Spawner spawner;
spawner.execute (argv, true);

使用g编译器,我得到以下错误:

error: deprecated conversion from string constant to 'char*' [-Werror=write-strings]

我怎样才能摆脱上述错误?

下面是API中执行函数的声明:

void Spawner::execute (char *const argv[], bool bShowChildWindow)
最佳答案
是的,C对const chars非常恼人(但是正确)严格.试试这个

char timeoutString[] = "--timeout=0";    // make a non-const char array
char *argv[] = { timeoutString, NULL };
Spawner spawner;
spawner.execute( argv, true );

从技术上讲,问题在于execute方法的声明,应该是

void Spawner::execute (const char *const argv[], bool bShowChildWindow)

假设execute不修改字符串或数组.

点击查看更多相关文章

转载注明原文:如何在c中初始化char * const argv [] - 乐贴网