| 転送元の開始アドレス | 転送先の開始アドレス | 方向フラグ | 転送語数 | |
|---|---|---|---|---|
| ア | 1001 | 1003 | 0 | 4 |
| イ | 1001 | 1003 | 1 | 4 |
| ウ | 1004 | 1006 | 0 | 4 |
| エ | 1004 | 1006 | 1 | 4 |

応用情報技術者試験 令和6年度春期 午前 問8「同一メモリ空間で,転送元の開始アドレス,転送先の開始アドレス,方向フラグ及び転送…」の正解と解説です。応用情報技術者試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約63%です。
エ. 転送元の開始アドレス 1004,転送先の開始アドレス 1006,方向フラグ 1,転送語数 4
正答率 63.3%(664人中 420人が正解)
転送元(1001〜1004)と転送先(1003〜1006)が2語ぶん重なっているため、転送の向きを誤ると未転送のデータを上書きして壊してしまう問題である。昇順(方向フラグ0)で1001→1003から順に転送すると、1003・1004に書き込んだ値が、まだ読んでいない元データを破壊してしまう。そこで降順(方向フラグ1)に、末尾の1004→1006から1001→1003へ向かって転送すれば、各語を書き込む前に必ず読み終えており重なりがあっても正しくコピーできる。よって転送元1004・転送先1006・方向フラグ1・転送語数4のエが正解である。