C言語 コマンドライン引数にfor文を使って配列を入れたい
解決したいこと
コマンドライン引数に配列を入れたい。
C言語の練習でswap関数を作り、配列をソートする関数を作った。配列をmain関数に最初入れていたが、より応用性を求めるためにコマンドライン引数を用いたいと考えた。どうしてsegmentaion faultが起きるのか、このプログラムで何が起きているのかと具体的な解決策を教えていただきたい。
発生しているエラー
ファイル名がexample.cなのでcc example.c -o exampleとコンパイルする。するとエラーは出てこないが、
./exampleと実行するとsegmentation faultが起きる。
発生している問題・エラー
コンパイルはできるが、実行するとsegmentation faultが起きる。
segmentation fault
該当するソースコード
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, char* argv[]){
int i;
int x[argc-1];
for(i=0;i<=argc-1;i++){
x[i] = atoi(argv[i+1]);
}
for(i=0;i<=argc-1;i++){
printf("%d ",x[i]);
}
retun 0;
}
自分で試したこと
C言語の練習でswap関数を作り、配列をソートする関数を作った。配列をmain関数に最初入れていたが、より応用性を求めるためにコマンドライン引数を用いたいと考えた。どうしてsegmentaion faultが起きるのか、このプログラムで何が起きているのかと具体的な解決策を教えていただきたい。