ご存じかとは思いますが、 コピー元の長さが0だとエラーになるので、そのチェックは必要です。 ローカルに長さ0の配列を用意して、前後2回のCOPYと参照値の代入をしています。