
教えてください。
現在陥っている現象:「メモリ不足になってしまう」配列の領域をRedimで動的に確保しようとしています。
例えば、
dim A() as byte
dim B() as byte
dim C() as byte
redim A(8000,60000)
redim B(8000,60000)
redim C(8000,60000)
上記のように配列を確保する予定なのですが、
メモリ不足になってしまいます。
ひとつの変数の容量が480MB程度であると思います。
3つ全部でも1440MBであるのですが、物理的な
メモリ容量は、512M*4を実装しています。
上記の変数名で言いますと、
Aの変数の領域確保には問題なく成功するのですが、
その次の行のBのところでエラーになります。
現在、物理的なメモリには空きがあるにもかかわらず
このような現象になってしまい、困っています。
どなたか原因解決の糸口になるような回答をお持ちの方、
教えてください。
No.1ベストアンサー
- 回答日時:
>メモリ容量は、512M*4を実装しています。
>物理的なメモリには空きがあるにもかかわらず
配列だけ考えれば確かにそうですが、その他にも物理メモリを使用しているモノがたくさんあるので、足りなくなることがあります。
ハードディスクの空きはありますか?
十分あるのに不足になる原因として考えられるのは、動的に大きな連続した領域を確保しようとしているからだと思います。
動的に確保しなければならないのには理由があるのですか?
静的な確保に変更可能ならば、多少多めに確保しても仮想メモリに割り当てるので確保できるはずです。
また、一度に多くの配列を割り当てるのではなく、細かく分割した方が、メモリ待避・解放のレスポンスも向上しますし、メモリ不足を回避するのにも役立ちます。
最後に単なる思いつきですが、3つのredimの間に適当な処理をはさむとうまくいくかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
newしないオブジェクトについて
-
allocってなんですか?
-
c言語のポインタへの文字列入力...
-
Accessで、メモリを開放するタ...
-
callocの処理速度
-
入れ子になった構造体について
-
C言語 mallocとfreeについて
-
ヒープメモリの解放について
-
文字列ポインタとgets関数の関...
-
【VC++6.0(MFC)】MessageBoxを...
-
配列の添え字の最大数とは?
-
mallocで確保するメモリの領域...
-
自作のstrcatが動かない件
-
HEAP に関すること
-
SSL_read
-
ポインタのポインタの初期化法
-
関数から配列を返すには?
-
C言語 配列の長さの上限
-
System.IO.Directory.GetFiles...
-
CStringからchar*への型変換に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
c言語のポインタへの文字列入力...
-
allocってなんですか?
-
ビットをローテートするプログ...
-
ヒープメモリの解放について
-
newしないオブジェクトについて
-
構造体でchar name[]と*nameの...
-
ポインタのポインタの初期化法
-
行列内の行の交換,列の交換を...
-
C++で、メンバもヒープに確保さ...
-
DLLのマルチスレッドの動作につ...
-
配列の添え字の最大数とは?
-
mallocで確保するメモリの領域...
-
C++のnewで確保したメモリーの...
-
C言語に関する質問
-
Win32APIでのメモリ管理について
-
変数に文字列を代入する方法を...
-
領域の確保について
-
free関数で動作が止まる
-
CreateFileMapping について
-
指定したメモリアドレスの値の...
おすすめ情報