回答編集履歴
1
ソースの動作に関する記述を追加
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
> temp = sorce[ARRAY_SIZE];
|
10
10
|
|
11
|
-
str[ARRAY_SIZE] = temp;
|
11
|
+
> str[ARRAY_SIZE] = temp;
|
12
12
|
|
13
13
|
|
14
14
|
|
@@ -17,3 +17,13 @@
|
|
17
17
|
|
18
18
|
|
19
19
|
C言語での文字列の扱いを再確認される事を勧めます。
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
[追記]
|
24
|
+
|
25
|
+
`temp = sorce[ARRAY_SIZE];` sorce配列の ARRAY_SIZE + 1 番目(範囲外)の文字を temp に代入。
|
26
|
+
|
27
|
+
`str[ARRAY_SIZE] = temp;` str配列の ARRAY_SIZE + 1 番目(範囲外)に tempの文字を代入。
|
28
|
+
|
29
|
+
`printf("%s\0",str);` コピーは失敗しているが、str, sorce の順にメモリが確保(推測)されているため、"hello!" の文字列が出力されていると思われる。
|