C/C++の宿題を片付けます 76代目

このエントリーをはてなブックマークに追加
213デフォルトの名無しさん
>>201
printf("%X %X %X\n",a,b,c);で各々のアドレスを調べてみよう
bのサイズがMAXの時、俺の環境だと
22FF60 22FF50 22FF40
となる
bのサイズが1のときは
22FF60 22FF5F 22FF40
これのダンプをちと書くと
b=MAX
      +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
22FF40 48 65 6C 6C 6F 00
22FF50 47 6F 6F 64 20 42 79 65 00
22FF60 48 65 6C 6C 6F 00
b=1
      +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
22FF40 48 65 6C 6C 6F 00
22FF50                                          47
22FF60 6F 6F 64 20 42 79 65 00

48 65 6C 6C 6F 00は"Hello"、47 6F 6F 64 20 42 79 65 00は"Good Bye"
なんか書くのが面倒になってきたけどようはstrcpy(b, "Good Bye");によって
aの一部が上書きされちまったってわけ

文字のおわりは00で判断するから
b = "Good Bye"
a = "ood Bye"
になるわけ