回答編集履歴
3
解説リンクを追加
answer
CHANGED
@@ -14,4 +14,6 @@
|
|
14
14
|
X1[i] = X[i++];
|
15
15
|
X2[i] = X[i++];
|
16
16
|
```
|
17
|
-
iとi++どちらが先に評価されるか不定です。
|
17
|
+
iとi++どちらが先に評価されるか不定です。
|
18
|
+
以下に解説があります。
|
19
|
+
[EXP30-C. 副作用が発生する式の評価順序に依存しない](https://www.jpcert.or.jp/sc-rules/c-exp30-c.html)
|
2
可変長配列について追記
answer
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
> まず、アドレスの表示について、手元の参考書ではこのプログラムと同じく『%p』を用いているのですが、なぜうまくいかないのでしょうか。
|
2
2
|
|
3
|
-
%pはvoidポインタの値を表示する書式指定のため、-Wallを付けたことでポインタの型が違うと警告されています。
|
3
|
+
%pはvoidポインタの値を表示する書式指定のため、```-Wall```を付けたことでポインタの型が違うと警告されています。
|
4
4
|
|
5
5
|
> 二つ目に、関数msort内の作業用配列についてエラーメッセージが出ていますが、ここでの宣言は可変長配列なのでしょうか。
|
6
6
|
n1、n2は定数だと思います。(これらをNにするとエラーメッセージは消えました)
|
7
7
|
|
8
8
|
n1、n2はint変数です。
|
9
|
+
オプションに```-std=c99```か```-std=c11```をつければ可変長配列を使用できます。
|
9
10
|
|
10
11
|
> 最後に『‘i’ に関する演算は定義されていません』というエラーメッセージがありますが、これについては全くわかりません。
|
11
12
|
|
1
コード追加
answer
CHANGED
@@ -11,5 +11,6 @@
|
|
11
11
|
|
12
12
|
```C
|
13
13
|
X1[i] = X[i++];
|
14
|
+
X2[i] = X[i++];
|
14
15
|
```
|
15
16
|
iとi++どちらが先に評価されるか不定です。
|