2014-10-22 74 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

相關問題