-2

我在终端的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;
}
4

2 回答 2

0

argc您在(表示参数数量的 int )和argv(包含命令行参数的字符串数组)之间感到困惑。改变:

mkdir(argc[1], 00755);

到:

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

(请注意,我还删除了一个冗余0前缀00755来制作它0755- 您只需要一个0前缀来表示八进制基数。)

对于一个真实的程序,您还应该检查是否提供了参数,否则当用户不提供参数时您将崩溃:

if (argc > 1)
{
    mkdir(argv[1], 0755);
}
于 2014-10-22T08:10:40.280 回答
0
 mkdir(argv[1] , 00755);//try argv instead of argc

您的命令行参数仅存储argvargc. argc命令行中不包含任何参数。所以尝试argv

于 2014-10-22T08:11:01.623 回答