如何在C中将char *转换为char * const *

晚安

我正在尝试使用execv()函数。

我试图将我的参数命令传递到左侧。

 execv(file,arguments);

我正在使用char *来解析我的shell的输入用户输入。

execv的第二个参数采用char * const *。

有没有一种方法可以将char * const强制转换为char * const *?

我在下面尝试

char * arg;
char *const a[] = (char *const)arg;

error: invalid initializer
      char *const a[] = (char *const)arg;
                        ^

但这不起作用,并给我错误。

帮助将不胜感激。

埃里克·波斯蒂奇(Eric Postpischil)

输入错误char *const a[] = (char *const)arg;不是由于转换不正确。这是因为char *const a[]声明了一个数组,并且数组的初始化程序必须在大括号1{ … },但是您只指定了一个不使用大括号的初始化程序。

此外,argv参数toexecv应该是一个指针数组,其中第一个指针指向一个字符串,该字符串包含正在执行的程序的文件名(按照惯例,这不是必需的),而最后一个是空指针。因此,您对的定义a应类似于:

char * const a[] = { FileNameOfProgram, arg, NULL };

脚注

1除非使用字符串文字来初始化数组,但是这里不是这种情况。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章