+-
![如何在c中初始化char * const argv [] 如何在c中初始化char * const argv []](/img/no_img.png)
API函数采用类型为’char * const argv []’的参数
我在我的c应用程序中初始化这种类型的参数,如:
我在我的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 [] - 乐贴网