
教えてください。
現在陥っている現象:「メモリ不足になってしまう」配列の領域を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ランキング
-
C++で、メンバもヒープに確保さ...
-
c言語のポインタへの文字列入力...
-
newしないオブジェクトについて
-
win32APIのHeapAlloc()の使い方...
-
Accessで、メモリを開放するタ...
-
VBAのプログラムで、DIAG = 1# ...
-
プログラムによく出てくるst...
-
C言語 配列の長さの上限
-
C# DataTableの行をソートしてD...
-
銀行ATMの数字キーの配列
-
C#で構造体の配列を持った構造...
-
Integer変数をカラにしたいので...
-
配列の要素数に変数を入れたい...
-
C言語のプログラムについてです
-
C言語 ファイルの指定された行...
-
HOSTENT構造体を宣言する必要は...
-
std::stringクラスのc_str()で...
-
C++ 配列を返すには?
-
C言語において、 配列要素をひ...
-
ポインタの配列のコンマについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
allocってなんですか?
-
c言語のポインタへの文字列入力...
-
HEAP に関すること
-
構造体でchar name[]と*nameの...
-
ビットをローテートするプログ...
-
ヒープメモリの解放について
-
DLLのマルチスレッドの動作につ...
-
グローバル変数のサイズ
-
C++で、メンバもヒープに確保さ...
-
newしないオブジェクトについて
-
free関数で動作が止まる
-
構造体配列の初期化について
-
void*型のデータサイズ
-
MFCのCStringについて
-
mallocで確保するメモリの領域...
-
CreateFileMapping について
-
LPWSTRのコピー
-
c言語のメモリの確保について
-
配列の添え字の最大数とは?
-
C言語の質問です。 以下の命令...
おすすめ情報