ページ 11

コマンドライン引数

Posted: 2011年12月04日(日) 15:37
by x_kai
何度も初歩的なことを質問してすみません。
今回は、コマンドライン引数についてなのですが、

コマンドライン引数(-a)が入力された場合
"引数 -a"と表示するプログラムを作っているのですが、

なぜか、引数がないときだけ

Segmentation fault が起こります。

ソースは以下のとおりです。

コード:

#include <stdio.h>

int main(int argc,char *argv[])
{
    if(argc != 0){
        if(!strcmp(argv[1], "-a")){
            printf("引数 -a\n");
        }
    }
    
    printf("Hello, World!\n");

    return 0;
}

Re: コマンドライン引数

Posted: 2011年12月04日(日) 15:43
by box
実行ファイルに引数を与えなかったとき、
argcは1
argv[0]は実行ファイル名
argv[1]はNULL
となります。

argc != 0
で判断しているのがまずいようです。

Re: コマンドライン引数

Posted: 2011年12月04日(日) 15:54
by x_kai
box さんが書きました:実行ファイルに引数を与えなかったとき、
argcは1
argv[0]は実行ファイル名
argv[1]はNULL
となります。

argc != 0
で判断しているのがまずいようです。
ありがとうございますっ、
出来ました。