下标值既不是数组也不是指针,也不是具有argv的向量
我在终端的ubuntu中有这个code.c,但是当我用gcc编译它时,出现了这个错误
cod2.c: In function ‘main’:
cod2.c:9:11: error: subscripted value is neither array nor pointer nor vector
这是为什么?
int main(int argc , char ** argv){
mkdir(argc[1] , 00755);
return 0;
}
你在argc
(一个表示参数个数的int)和argv
(包含命令行参数的字符串数组)之间感到困惑。 更改:
mkdir(argc[1], 00755);
至:
mkdir(argv[1], 0755);
^^^^^^^
(请注意,我还从00755
删除了一个冗余0
前缀,使其成为0755
- 您只需要一个0
前缀来表示八进制基础。)
对于真正的程序,你还应该检查提供了一个参数,否则当用户不提供参数时你会崩溃:
if (argc > 1)
{
mkdir(argv[1], 0755);
}
mkdir(argv[1] , 00755);//try argv instead of argc
您的命令行参数仅存储在argv
,而不存储在argc
。 argc
在命令行中不包含任何参数。 所以试试argv
上一篇: subscripted value is neither array nor pointer nor vector with argv