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


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0423
駆け出し配列変数の削除6解決


駆け出し

リンク

2011/4/23(Sat) 17:15:04|NO.38637

配列変数を削除する方法はありますか?



この記事に返信する


f3d

リンク

2011/4/23(Sat) 17:20:11|NO.38638

たぶんsdim a , 0で削除されると思いますが、
HSPの実装しだいでしょう。



いつき

リンク

2011/4/23(Sat) 17:38:15|NO.38639

何でこう一言ネタみたいな文章量ばかりなんでしょうかねぇ。
長々と書いたら「三行で」とか言われる場所じゃないんだから。
もっと細かい内容書かないと回答しにくいと思うのに。

配列変数を削除したいならスクリプトからdelで消せばいいですよ。

そういう意味じゃないというなら、もっと詳細を書いてくださいな。



ORZ

リンク

2011/4/23(Sat) 19:07:41|NO.38640

長々と書いたらいかん。必要な情報を書くのだ。



KA

リンク

2011/4/23(Sat) 20:31:42|NO.38641

削除するのなら作らないのが一番。



info

リンク

2011/4/24(Sun) 15:59:01|NO.38676

どうしても解放がしたいのならこんな方法もあります。

dupptr で メモリ全体に割り当ててもいいのですが。
メモリ効率が悪くなりますが、
割り当てられたメモリが、内部でどうなっているのか解らないのであえて4byteずつアクセス
する方法を取っています。

自分の環境では、heap ハンドルを削除しない限り
そのメモリアドレスにアクセスすることは可能みたいです。


#uselib "kernel32.dll" #cfunc HeapCreate "HeapCreate" int,int,int #cfunc HeapAlloc "HeapAlloc" int,int,int #func HeapFree "HeapFree" int,int,int #func HeapDestroy "HeapDestroy" int #cfunc IsBadCodePtr "IsBadCodePtr" int #const MEMORYSIZE 16 #define HEAP_ZERO_MEMORY $00000008 #module heap #defcfunc lPeekPtr int ptr_ dupptr mem,ptr_,4,4//vartype("int") return mem #deffunc lPokePtr int ptr_ , int add_ dupptr mem,ptr_,4,4//vartype("int") mem = add_ return #global hHeap = HeapCreate(0,100,0xFFFF) if hHeap==0:dialog "heapの作成に失敗":end ptr_a = HeapAlloc(hHeap,HEAP_ZERO_MEMORY,4*10) mes "※36byte目 (int配列で9番目 の アドレスに 555555) を代入" lPokePtr ptr_a+(4*9) , 555555 gosub *print_ mes "※20byte目 (int配列で9番目 の アドレスに 111111) を代入" lPokePtr ptr_a+(4*5) , 111111 gosub *print_ mes "※解放してみる" HeapFree hHeap , 0 , ptr_a gosub *print_ mes "※heapハンドルを削除してみる" HeapDestroy hHeap gosub *print_ stop *print_ color 255 if IsBadCodePtr(ptr_a): mes "\tアクセスできなくなったみたい" :return txt = "\t"+lpeekptr(ptr_a) repeat 9,1 txt+=strf(",%d",lpeekptr(ptr_a+(4*cnt))) loop mes txt color return



駆け出し

リンク

2011/4/27(Wed) 20:04:39|NO.38729

返信遅くなりました。
削除しないですむ方法を考え出せました。
なので解決にしておきます。



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