| 転送元の開始アドレス | 転送先の開始アドレス | 方向フラグ | 転送語数 | |
|---|---|---|---|---|
| ア | 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 で重なる領域をどの向きにコピーすべきかを問う問題である。転送先のアドレスが転送元より大きく重なっているため、昇順(小さいアドレスから)にコピーすると、まだコピーしていない転送元 1003・1004 の内容を先に書き換えてしまい元データが壊れる。これを避けるには末尾の大きいアドレスから降順にコピーする必要があり、転送元 1004・転送先 1006 を開始点とし方向フラグ 1(降順)、転送語数 4 とするエが正解である。