HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0512
ぺnuバッファ破棄8解決


ぺnu

リンク

2010/5/12(Wed) 16:39:48|NO.32626

ものすごいちっちゃい事なんですけど、
buffer バッファ番号
で確保した描画バッファを破棄する事はできますか?
buffer バッファ番号, 1,1
で、1x1に初期化し直すしかないのでしょうか。
あと、
dim バッファ名
で確保した配列変数も、
sdim バッファ名, 1
で、1バイトの文字列型変数に初期化し直すしかないのでしょうか。



この記事に返信する


undefined

リンク

2010/5/12(Wed) 20:35:36|NO.32627

HSPにはバッファの開放という考え方が無いようなので、
そんな感じだと思います。



Kpan

リンク

2010/5/12(Wed) 21:25:40|NO.32628

bufferはどうなのか知らないです。
dimやsdimは↓


dim value, 100 ;確保 dim value ;解放 sdim buf, 512 ;確保 sdim buf ;解放



ぺnu

リンク

2010/5/12(Wed) 21:28:30|NO.32629

ありがとうございます。
今まで通り、同名で初期化する事にします。



ANTARES

リンク

2010/5/13(Thu) 04:13:01|NO.32630

 「dim value」は「dim value,1」、
「sdim buf」は「sdim buf,64」と同じです。

dim value, 100 ;確保 dim value ;解放 sdim buf, 512 ;確保 sdim buf ;解放 assert



ANTARES

リンク

2010/5/13(Thu) 04:25:12|NO.32631

 HSP2.55あたりでは、解放ではないものの、容量0になっていたのですが、
引数なしを初期化の意味で使おうとして動かないという質問が
数件投稿されたため、デフォルト値で初期化される仕様になりました。



ぺnu

リンク

2010/5/13(Thu) 08:08:50|NO.32632

追記ありがとうございます。
容量0が存在したということは、

sdim val, 1 sdim buf, 1
で1バイトの文字列型変数として初期化するのではなく、

dim val, 0 sdim buf, 0
とすれば、0バイトの変数として初期化することができるのでしょうか?
しかし、

dim val, 0 mes length(val)
の結果が1なので、無理なのかもしれませんが…
1バイトくらい、積み重なったってどうってことないんですけどね。
とても丁寧な回答ありがとうございました。



GENKI

リンク

2010/5/13(Thu) 19:20:02|NO.32638

変数が確保しているサイズは、デバッグウィンドウで確認できます。

dim a ;バッファサイズ:4 dim b,1 dim c,0 sdim sa ;バッファサイズ:64 sdim sb,64 sdim sc,0
デフォルト値以下には出来ないようです。



ぺnu

リンク

2010/5/14(Fri) 17:07:19|NO.32645

Σなにぃ
つまり、今まで
Sdim Var, 1
で初期化してきたのは、64バイトも損していたのか…
dim Var
の方が軽いんですね。
そこで、どの変数型が一番軽いのか調べようと

dimtype A, 1 dimtype B, 2 dimtype C, 3 dimtype D, 4 dimtype E, 5 dimtype F, 6
してみたんですけど、
デバッグウィンドウによれば、
使用サイズが一番少ないのは、整数型4バイトで、
バッファサイズが一番少ないのは、モジュール型0バイトでした。

しかし、モジュール型の使用サイズは16バイトとなっており、
内容はSTRUCT (Empty)です。はにゃにゃ?

整数型とモジュール型、
どちらで初期化し直すのが、メモリ開放の方法として効果的なのでしょうか。



ONION software Copyright 1997-2023(c) All rights reserved.