-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プレフィックスも削除したことに注意してください。8 進数を表すために必要なプレフィックスは 1 つだけです。)0075507550

実際のプログラムでは、引数が指定されていることも確認する必要があります。そうしないと、ユーザーが引数を指定しないとクラッシュします。

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

コマンドライン引数は にargvのみ保存され、 には保存されませんargcargcコマンドラインに引数が含まれていません。だから試してみてくださいargv

于 2014-10-22T08:11:01.623 に答える