プレイ日記
☆Tatsukin★ tatu_kin1192
DIMによる宣言で、freememを減らす実験をしてみました。
4そうだね
プレイ済み
返信[1]
親投稿
☆Tatsukin★ tatu_kin1192
ソースはこんな感じです。
0そうだね
プレイ済み
返信[2]
親投稿
say sayer.exe
何が言いたいのか全くわからないけど、 for i=0 to i:next で無限ループになるバグだけはわかりました ☆理屈上、+1される前に終了するはず
1そうだね
プレイ済み
返信[3]
親投稿
say sayer.exe
参考?:forをifで現した場合 i=初期値 @loop '処理 i=i+増分 if i<=終値 then @loop
0そうだね
プレイ済み
返信[4]
親投稿
say sayer.exe
うん?間違ってないけどなんか変なんで、他の方からのツッコミをお願いします
0そうだね
プレイ済み
返信[5]
親投稿
Oskar oskar_liebig
そりゃ無限ループですな。 IF I<=I THEN @LOOP だし。
1そうだね
プレイ済み
返信[6]
親投稿
Oskar oskar_liebig
で、本題ですが、最初これを見たとき、B[I]のサイズ増加分を超えてメモリが減っていく現象(メモリリーク)が起きているのかな、と思ったのですが、そういうわけではなさそうですね。 STEP 100にして、ついでにI*8の値も表示して実行すると、普通に800バイトずつ減ってゆき、下のキャプチャのように感じになりました。CLEARでFREEMEMも起動時の値に戻りました。 DIM B[I] が「新サイズでメモリ確保 → 前サイズのメモリ開放」という順序で動くのだとすれば、この段階で Out of memory になるのも納得できます。 ……と、朝っぱらからアルコール(飲み残し消化)モードで書く。
3そうだね
プレイ済み