トピック

DEFでの一括配列変数での引数と戻り値について

まず要望登録コーナーで 私の誤解を招く書き込みによつて ご迷惑をおかけしてしまったことについて 反省しお詫びします。 申し訳ありません。 改めてDEF命令で配列変数を一括で 引数、戻りできないのか組んでみました。
2そうだね
プレイ済み
返信[1]
親投稿
LEM命令は 文字列内の文字数を得るとだけ記憶していたことについて 配列の要素数を得るもできるとのご指摘頂きありがとうございました。 文字列操作に載っていた為、完全に勘違いしていました。 本題の一括配列変数について 8行目のTEST D1$ OUT D2$でエラーで止まりそうなんですが 13行目のCOPY T2$,T1$でtype mismatch in 0:13になります。 TEST D1$[0],D1$[1],D1$[2] OUT D2$[0],D2$[1],D2$[2]と DEF T1$[0],T1$[1],T1$[2] OUT T2$[0],T2$[1],T2$[2]にしないと動作しないのでしょうか? まだ3要素ならいいのですが要素が400x240だと とても辛い単純作業になってしまいます。
1そうだね
プレイ済み
返信[2]
親投稿
このような使い方もできるようになった方が 使い勝手がよくなると思うのですが いかがでしょうか?
0そうだね
プレイ済み
返信[3]
親投稿
訂正 DEF TEST T1$,T2$……TESTが抜けていました。
0そうだね
プレイ済み
返信[4]
親投稿
配列引数は、参照渡しになります。 コピー時にコピー先の参照が確定していないためにエラーになっていると推測します。 案1)DEF内でコピー先用の一時的な配列を用意して、コピー後にその参照を戻りに代入する。 案2)参照の変更が必要ないので、引き数で渡す。 案3)呼び出し時に引き数と戻りとの両方に指定する。ただし、DEF命令では引き数と戻りにおなじ名前を使えないので別の名前を付ける必要があります。
3そうだね
プレイ済み
返信[5]
親投稿
スー thanks_0u0
私もあまりわかっていないのですが、こんなのはエラーにならないみたいです。 これと同じ仕組みで使い終わった配列の要素を0にしたりもできます。私のエディタではそんな感じで終了時にメモリを空けていますー。 ・配列は参照渡し ・DEFの引数は最初の状態だと型が未定 らしい?ので、その辺りを気を付けないと変なエラーがでちゃうみたいです。
1そうだね
プレイ済み
返信[6]
親投稿
スー thanks_0u0
コータさんのアドバイスがピッタリですね! 添付は案3ですが、ちゃんとエラーにならずにCOPYされましたー。COPYなのでちゃんとA$とB$の片方だけを変更することも出来ます。
0そうだね
プレイ済み
返信[7]
親投稿
ご指南頂きありがとうございます。 参照渡しというと一部分要素の値だけ渡すだけで 要素すべては渡せない。 DEFで受け取ると型が未定の為エラーが出ずに 私が思っていた動作にはならないって理解できました。 もし参照渡しの仕様を変更してしまったら 過去のプログラムが動作しなくなったりするのであれば むつかしそうですね。
1そうだね
プレイ済み