cの配列がどのように動作しているかを知ろうとしています。だから私はいくつかの基本的な配列の概念を実装していた。私はプログラムを実行するとき、私は正確な出力を得たが、出力の最後にセグメンテーションフォールトと言う。出力の出力中にセグメンテーションエラーが発生する
int main(void)
{
int a[] = {};
printf("Enter the number:");
int n = get_int();
int m = 0;
for(int i = 0; i<n; i++)
{
printf("insert:");
m = get_int();
a[i] = m;
}
for(int j = 0; j < n; j++)
{
printf("%d\n", a[j]);
}
}
出力:
Enter the number:3
insert:1
insert:2
insert:3
1
2
3
~/workspace/ $ ./arr_test
Enter the number:5
insert:1
insert:2
insert:3
insert:4
insert:5
1
2
3
4
5
Segmentation fault
それはsegmentation fault
を示すが、それは示し5の大きさを有する第2のいずれかにない3のサイズを有する第一の出力を参照されたいです。それがどうして起こったのか、私は何の間違いをしましたか。
'int a [] = {};'は標準Cのエラーです。標準準拠モードでコンパイラを動作させることをお勧めしますので、実行時ではなくコンパイル時にエラーが発生します。 –