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

応用情報技術者試験 平成31年度春期 午前 問9「同一メモリ上で転送するとき,転送元の開始アドレス,転送先の開始アドレス,方向フラ…」の正解と解説です。応用情報技術者試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約73%です。
エ. 転送元の開始アドレス:1004,転送先の開始アドレス:1006,方向フラグ:1,転送語数:4
正答率 73.1%(535人中 391人が正解)
転送元の 1001 から 1004 と転送先の 1003 から 1006 は、1003 と 1004 番地で重なっている。昇順に転送すると、1001 の内容を 1003 へ書いた時点で元の 1003 の内容が消え、まだ読んでいないデータが壊れる。そこで末尾から降順(方向フラグ 1)に、1004 から 1006 へ、1003 から 1005 へ、と 1 語ずつ移せば、4 語を正しく転送できる。