関数Bで返している参照は、関数Bのローカル変数のものなので、関数Bの実行終了次第、その実体がなくなってしまうのでは・・・? 関数Aの引数として与える配列は、関数Aよりも上位のスコープのものでないといけないと思います。