c コマンドライン引数でのエラー
Q&A
Closed
解決したいこと
ここに解決したい内容を記載してください。
cで1からコマンドライン引数で受け取った値までの和を返すコードを作っています。
その際ターミナルで
(実行ファイル) -n (1以上の整数)
と入力した場合(1)、1から(1以上の整数)までの和を出力し
(実行ファイル) --help
と入力した場合(2)コードの使用方法を出力し
(実行ファイル)
と入力した場合(3)1から10までの和を出力するコードを目標としており(1),(2)に関しては正常に動作するのですが(3)のように実行しようとするとエラー(Segmentation fault)が起こってしまいます。コンパイルはエラー、警告いずれもなく実行できます。
解決方法をご存知の方がいらっしゃれば教えていただきたいです。
発生している問題・エラー
Segmentation fault
### 該当するソースコード
```c
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc,char *argv[]){
int i, n;
int sum = 0;
if(strcmp(argv[1],"-n")==0 && argc==3 && atoi(argv[2])>0){
n = atoi(argv[2]);
for(i=1;i<=n;i++){
sum += i;
}
printf("1から%dまでの和は\n%dです。\n",n,sum);
}
else if(strcmp(argv[1],"--help")==0){
printf("このコードの使い方");
}
else if(argc==1){
printf("1から10までの和は\n55です。\n");
}
else{
printf("erorr!\n");
}
return 0;
}
0