teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

解説リンクを追加

2019/07/14 10:48

投稿

SHOMI
SHOMI

スコア4079

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

可変長配列について追記

2019/07/14 10:48

投稿

SHOMI
SHOMI

スコア4079

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

コード追加

2019/07/14 10:41

投稿

SHOMI
SHOMI

スコア4079

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++どちらが先に評価されるか不定です。