回答編集履歴
1
追記
test
CHANGED
@@ -7,3 +7,21 @@
|
|
7
7
|
但し、オーバーフローが発生してもプログラムがどのように動くかは何ともいえません。
|
8
8
|
|
9
9
|
使われない領域が破壊されてもプログラムは動きます。
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
以下、追記
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
`char str[16];`は16個の配列を確保するのではなく、16バイトのメモリ領域を確保しただけにすぎません。
|
18
|
+
|
19
|
+
その17バイト目以降も、何かしらの領域があります。
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
`char str[16];`した場合は、C言語の文字列終端文字`\0`も含め16バイトで収まるようにしましょう。
|
24
|
+
|
25
|
+
もし、そうなっていない場合は文字列を扱う関数は`\0`が出現するまでメモリ内をアクセスします。
|
26
|
+
|
27
|
+
|