subscripted value is neither array nor pointer nor vector with argv

I have this code.c in ubuntu in terminal but when I compile it with gcc this error appeared

cod2.c: In function ‘main’:
cod2.c:9:11: error: subscripted value is neither array nor pointer nor vector

why is that?

int  main(int argc , char ** argv){
    mkdir(argc[1] , 00755);
    return 0;
}

You got confused between argc (an int representing the number of arguments) and argv (an array of strings containing the command line arguments). Change:

mkdir(argc[1], 00755);

to:

mkdir(argv[1], 0755);
      ^^^^^^^

(Note that I also removed a redundant 0 prefix from 00755 to make it 0755 - you only need a single 0 prefix to signify octal base.)

For a real program you should also check that an argument has been provided, otherwise you will crash when the user does not supply an argument:

if (argc > 1)
{
    mkdir(argv[1], 0755);
}

 mkdir(argv[1] , 00755);//try argv instead of argc

Your command line arguments are stored in argv only, not in argc . argc contains no of arguments in command lines. So try with argv

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

上一篇: 为什么既不移动语义也不会按预期工作?

下一篇: 下标值既不是数组也不是指针,也不是具有argv的向量