我有一个函数:使用C数组时,传递到execv()
int exploreDIR (char stringDIR[], char arguments[6][100])
{
/*stuff...*/
execv(filePath, arguments);
}
不过,我得到了warning: passing argument 2 of ‘execv’ from incompatible pointer type
如果execv预计char* const argv[]
其第二个参数,为什么会收到这样的警告?
由于数组与指向数组起始点的指针基本相同,因此char arguments[][]
和char* const argv[]
之间的关键区别是什么?
没有错'execv(文件路径,参数); ','arguments'应该NULL终止,但'参数[6] [100]'不能为空终止'参数[I]'是一个有效的地址!= NULL –
我很困惑,如何解决这里?我认为,通过使大小为6的参数(其中我只计划,以填补他们的5)最后一个值将是一个空指针,从而导致终止。这是错的吗? –
阅读:[?字符* STR [1]'和'之间的区别'焦炭海峡[] []'和记忆都如何存储(http://stackoverflow.com/questions/17564608/what-does-the-array -name-mean-case-of-char-pointers/17661444#17661444) –