下标值既不是数组也不是指针,也不是具有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 ,而不存储在argcargc在命令行中不包含任何参数。 所以试试argv

链接地址: http://www.djcxy.com/p/86815.html

上一篇: subscripted value is neither array nor pointer nor vector with argv

下一篇: Error that is neither syntactic nor semantic?