我在终端的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);
^^^^^^^
(请注意,我还删除了一个冗余0
前缀00755
来制作它0755
- 您只需要一个0
前缀来表示八进制基数。)
对于一个真实的程序,您还应该检查是否提供了参数,否则当用户不提供参数时您将崩溃:
if (argc > 1)
{
mkdir(argv[1], 0755);
}
mkdir(argv[1] , 00755);//try argv instead of argc
您的命令行参数仅存储argv
在argc
. argc
命令行中不包含任何参数。所以尝试argv