回答編集履歴

2

typo

2016/05/20 06:45

投稿

Chironian
Chironian

スコア23272

test CHANGED
@@ -14,6 +14,6 @@
14
14
 
15
15
 
16
16
 
17
- なお、文字列は最後に0が付いてます。つまり、"123456789"は最後に0があるので全部10バイトあります。
17
+ なお、文字列は最後に0が付いてます。つまり、"123456789"は最後に0があるので全部10バイトあります。
18
18
 
19
19
  最後の0(NULL終端)の存在を忘れないように。

1

typo

2016/05/20 06:45

投稿

Chironian
Chironian

スコア23272

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  `char str2[] = {0};`はstr2の領域としてchar型を1つだけ確保し、0で初期化する指示になってます。
8
8
 
9
- つまり、str2は1バイトしか領域が確保されていません。そこに9バイトをコピーしてますので、8バイトはstr2でない他のエリアを破壊しています。
9
+ つまり、str2は1バイトしか領域が確保されていません。そこに9バイトをコピーしてますので、残りの8バイトはstr2でない他のエリアを破壊しています。
10
10
 
11
11
  そのような操作をすると、どのような結果になるのか未定義なのです。
12
12