2014-10-22 95 views
-2

我有此code.c在Ubuntu在终端 但是当我用gcc编译它这个错误出现下标值既不是数组也不指针也不矢量与argv的

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

你让argc(表示参数的个数的int)和argv(包含命令行参数的字符串数组)之间混淆。变化:

mkdir(argc[1], 00755); 

到:

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

(请注意,我也删除从00755冗余0前缀,使其0755 - 你只需要一个0前缀表示十进制。)

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

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

没有什么改变! 是的ARGC是假的,但00755是真的:) – patric 2014-10-22 08:13:49

+0

您是否已将'argc'更改为'argv',保存并重新编译? – 2014-10-22 08:15:26

+0

是的你是对的:) argv是正确的,但是0没有问题 – patric 2014-10-22 08:19:15

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

您的命令行参数存储在argv只,而不是在argcargc在命令行中不包含参数。所以试试argv

+0

heyy thanx !! 我犯了多么愚蠢的错误 – patric 2014-10-22 08:15:48

相关问题