我在终端的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;
}
答案 0 :(得分:0)
您在argc
(表示参数数量的int)和argv
(包含命令行参数的字符串数组)之间感到困惑。变化:
mkdir(argc[1], 00755);
为:
mkdir(argv[1], 0755);
^^^^^^^
(请注意,我还从0
删除了一个冗余的00755
前缀,使其成为0755
- 您只需要一个0
前缀来表示八进制基数。)< / p>
对于真实程序,您还应该检查是否已提供参数,否则当用户不提供参数时您将崩溃:
if (argc > 1)
{
mkdir(argv[1], 0755);
}
答案 1 :(得分:0)
mkdir(argv[1] , 00755);//try argv instead of argc
您的命令行参数仅存储在argv
中,而不是argc
中。 argc
在命令行中不包含任何参数。请尝试使用argv