回答編集履歴
1
バグの修正
test
CHANGED
@@ -2,4 +2,4 @@
|
|
2
2
|
|
3
3
|
printf関数の実行前に、number2 = '9';という一行を追加してみてください。多分、543219のように表示されると思います。つまり、number2に代入した文字が表示されてしまうわけです。原因は、number1の要素数です。5桁の整数だから5文字で足りる、そう思うかもしれません。しかし、printf関数で表示する場合は異なります。printf関数の%s指定は、ヌル文字に出会うまでずっと、(配列のメモリ領域を超えても)文字を表示し続ける仕様になっています。今回は、number1の領域の直後にnumber2の領域があり、そのあとヌル文字が入っていたため、6文字が出力されたのです。
|
4
4
|
|
5
|
-
直し方は簡単で、配列の大きさを6文字分にするか、%s指定をやめて、%5
|
5
|
+
直し方は簡単で、配列の大きさを6文字分にするか、%s指定をやめて、%.5sのように最大文字数を指定すればよいです。
|