プチコン3号 SmileBASIC コミュニティ投稿おにぎり EasyPuzzler652015/01/25 18:45:19質問多分バグ扱いしないといけない例。このプログラムを実行すると…2そうだね 12返信プレイ済み2017/11/04 00:02:30に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿おにぎり EasyPuzzler652015/1/25 18:52こんなふうに配列A,B,Cの記憶域が共有されてしまう。C語ならともかく、BASICではエラーにしないとまずいっしょ。配列変数はローカル宣言ができないらしいことも今回気がついたこと。B=P(A)をCOPY B,P(A)と書けば回避されるのではありますが。0そうだね プレイ済み2017/11/04 00:02:30に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿けい kei0baisoku2015/1/25 20:11見た感じ、ポインタBとCを普通にAで上書きしてるみたいですね。 関数から配列を返すのは思いつきませんでした。試した人を見たのも私は初めてかもしれません。この場合、RETURN に配列変数を指定できる点がバグでしょうか。 ローカルの配列変数は宣言できるのですが、グローバル変数と名前が衝突するバグがあるそうです。 前は配列でない普通の変数も名前が衝突していたのですが………0そうだね プレイ済み2017/11/04 00:02:30に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿おにぎり EasyPuzzler652015/1/25 20:16DIM A[2],B[2]とやってB=Aがエラーにならないので、最初はおー代入できるんだ、じゃCOPY命令って何?という感じで いたのですが...あー、配列変数がローカル宣言できないのはバグですか。ムムム。0そうだね プレイ済み2017/11/04 00:02:30に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿けい kei0baisoku2015/1/25 20:24えっ、普通の代入も出来るのですか!?(°Д°) 盲点。試そうとも思いませんでした(°ω°) 仕様なら仕組みを把握してる人は活用できない事もないですが、全然BASICらしくないですよね………0そうだね プレイ済み2017/11/04 00:02:30に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿おにぎり EasyPuzzler652015/1/25 20:34もっと簡単でした。まさにポインタ代入になっとるんですな。ぐはっ。0そうだね プレイ済み2017/11/04 00:02:30に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿おにぎり EasyPuzzler652015/1/25 20:37実行画面。0そうだね プレイ済み2017/11/04 00:02:30に取得
プチコン3号 SmileBASIC コミュニティ返信[7]親投稿けい kei0baisoku2015/1/25 20:40うーん、予想通り(-ω-) どちらかと言うとバグであって欲しいです。 (=代入できないが正しい)0そうだね プレイ済み2017/11/04 00:02:30に取得
プチコン3号 SmileBASIC コミュニティ返信[8]親投稿コア/co.a co.a_U2015/1/26 0:18配列がポインタ渡しできる仕様ですが、自分の場合こんな感じの関数を用意することで配列の再定義に利用してます。 DIM ARR(4) … ARR=INIT_ARR(9) DEF INIT_ARR(N):DIM A[N]:RETURN A:END なお、メモリ開放はきちんと行われてるっぽいです。0そうだね プレイ済み2017/11/04 00:02:30に取得
プチコン3号 SmileBASIC コミュニティ返信[9]親投稿けい kei0baisoku2015/1/26 0:57>コア/co.aさん おお!そんなことも(°ω°) Cのローカルスコープのイメージがあるのでローカル変数を関数終了後も持ち続けるのが大丈夫か不安ですが、試した感じちゃんとしてますね……… 引数と保存先変えて複数回呼んでみましたが、衝突せずちゃんと別々に取られてるのを確認できました。0そうだね プレイ済み2017/11/04 00:02:30に取得
プチコン3号 SmileBASIC コミュニティ返信[10]親投稿てらこや actorbug2015/1/26 5:44コアさん それって、数値配列だと問題無いのですが、 文字列配列だとメモリーリークするんですよね。 できれば修正してほしいところですが、 マニュアルに載って無いので無理ですかね。1そうだね プレイ済み2017/11/04 00:02:30に取得
プチコン3号 SmileBASIC コミュニティ返信[11]親投稿けい kei0baisoku2015/1/26 10:12ローカル変数を持ち続けられるのでガーベジコレクションが働いてると思ったのですが、そう言うわけでも無さそうですね。 文字列以外はプリミティブな型のみが前提の作りになっているのだと思っていましたが、いまいち分からなくなってきてます………(´ω`)0そうだね プレイ済み2017/11/04 00:02:30に取得
プチコン3号 SmileBASIC コミュニティ返信[12]親投稿てらこや actorbug2015/1/26 20:45出来合いのガーベジコレクション処理を使わずに、参照カウントを使って自前でメモリ管理しているのだと思います。 自前でやっているから、一部の処理で参照カウントを減らし忘れて、メモリーリークになっているのでしょう。 POP、SHIFT、代入など、数値配列と文字列配列とで共通の処理になっている所でリークしているようなので、そのあたりの考慮漏れだと思います。1そうだね プレイ済み2017/11/04 00:02:30に取得