回答編集履歴

2

更に微修正

2017/02/21 03:49

投稿

Chironian
Chironian

スコア23272

test CHANGED
@@ -7,6 +7,10 @@
7
7
 
8
8
 
9
9
  ```C
10
+
11
+ // int min[i] ;
12
+
13
+
10
14
 
11
15
  printf("何個整数を入力しますか:"); scanf("%d", &n);
12
16
 

1

微修正

2017/02/21 03:49

投稿

Chironian
Chironian

スコア23272

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- 元のプログラムでは、`int i; int min[i];`となってますが、min[i]を宣言した時iは初期化していないため、C言語の規格上は不定値です。ただし、gccはこのような時0に初期化するようです。従って、`int min[0];`と宣言したのと同じ意味になるため、メモリが確保されておらず、何が起こるか分からない状態なのです。
19
+ 元のプログラムでは、`int i; int min[i];`となってますが、min[i]を宣言した時`i`は初期化していないため、C言語の規格上はこの時点では不定値です。ただし、gccはこのような時0に初期化するようです。従って、`int min[0];`と宣言したのと同じ意味になるため、メモリが確保されておらず、何が起こるか分からない状態なのです。
20
20
 
21
21
 
22
22