• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB6 「Line Input」でのリークについて)

VB6の「Line Input」でのメモリリークについて

このQ&Aのポイント
  • VB6での「Line Input」命令使用時のメモリリークについて教えて下さい。
  • 1分毎に3600行のCSVファイルを読み込むプログラムを作成していますが、ループごとにメモリ使用量が増加してしまいます。試しに別の方法(CSVファイルをオープンせず、データのコピー)を試したところ、メモリ使用量が増加しないことがわかりました。
  • 「Line Input」命令の使用方法などで間違っている箇所があるのでしょうか?ご存知の方、教えて下さい。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ベーシックでは文字列変数は実際にその場所に文字列があるのではなく、文字列へのポインタが有るのみです。 パターン1では毎回文字列を読み込むので少なくとも文字列長×3600のメモリを必要とします。 パターン2では実際の文字列"~500文字の文字列~"へのポインタが3600個出来るだけですから幾ら読み込んでもメモリの使用料は増加しません。

nori79
質問者

お礼

早速の回答ありがとうございます。 【パターン2】ではポインタができるだけなので、メモリの使用量は増えないのですね。        知りませんでした。 【パターン1】ですが、3600回のループ中にメモリ使用量が増えたとしても、        read_Timer()終了時(次回read_Timer()開始時)にはメモリ使用量が元の数値に        戻っても良い気がするのですが、間違っていますでしょうか?        現在はファイルを読み込んだ変数(CsvDataBuf(3600))は何も行わずに        read_Timer()を終了させていますが、        1~3分ごとにメモリ使用量が4096バイトずつ増加します。        又、「Line Input」命令だけでなく、他のプログラムの処理に問題があり、        結果的に「Line Input」命令の箇所でメモリ使用量が増加している        可能性もあるので調査してみます。

関連するQ&A