prg-lang-2 / week08 / report08.txt
report08.txt
Raw
プログラムAでは、nameメンバがchar型の固定長配列として定義され、構造体の代入を行った際メンバ全体がコピーされる。
よってp1とp2は独立しているため、p2.nameはKandaとなり、p1.name[0]を変更されたp1.nameはPandaとなる。
プログラムBでは、nameメンバがポインタとして定義され、構造体の代入を行うとアドレスがコピーされる。
この時p1.nameとp2.nameは同じメモリ位置を指すため、p1.name[0]を変更すると、p1とp2どちらもname[0]が変更されPandaとなる。